Warum funktioniert das nicht? (ADO)
-
Rs1 ist ein ADODB::_RecordsetPtr und ist bereits geöffnet
_bstr_t test = (_bstr_t)(Rs1->Fields->GetItem( _variant_t( "NAME" ) )->Value); Rs1->MoveNext(); test = (_bstr_t)(Rs1->Fields->GetItem( _variant_t( "NAME" ) )->Value); Rs1->MovePrevious(); test = (_bstr_t)(Rs1->Fields->GetItem( _variant_t( "NAME" ) )->Value);bei MovePrevious Kracht es

-
Hallo,
hast du vielleicht einen (Nur-)Vorwärtscursor beim Öffnen des RecordSets angegeben? (Dann kann man sich nur mit MoveNext weiterbewegen, aber keine "Rückwärtsbewegungen" durchführen)
MfG
-
Danke geht jetzt!
Aber was ist eigendlich der unterschied zwischen den ganzen Open's
adOpenUnspecified adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStaticmfg
-
Diese Konstanten charakterisieren die Eigenschaften des RecordSets, mit dem man arbeitet:
adOpenStatic:
Die Datensätze stellen eine (statische) Kopie dar, Änderungen an der Datenbank können so nicht mitbekommen werdenadOpenDynamic:
hier werden auch Änderungen, die von anderen Personen an der Datenbank gemacht werden, registriert, und können die Datensätze verändern, mit denen man gerade arbeitet (das RecordSet ändert sich dynamisch)adOpenKeyset:
fast wie adOpenDynamic, mit dem Unterschied, daß hinzugefügte Datensätze sich nicht im RecordSet widerspiegeln, Änderungen dagegen schonadOpenForwardOnly:
eine Form des statischen Cursors (adOpenStatic), nur daß man sich damit nur vorwärts im RecordSet bewegen kann. Dies kann leistungs-verbessernd wirken, da nicht so viele Verwaltungsinformationen nötig sind, um das RecordSet zu durchlaufenadOpenUnspecified:
überläßt die Wahl des Cursors dem DBMS/dem ProviderMfG