title image


Smiley Re: Das Problem ist das Command-Objekt
RecordCount funktioniert nicht bei einem CursorType = adOpenForwardOnly



Die Execute-Methode des Connection- oder Command-Objekts erstellt immer einen Recordset mit CursorType = adOpenForwardOnly und LockType = adLockReadOnly



Du mußt du deinen Recordset mit Open öffnen, nicht mit Execute



Also anstatt



Set oRS = oCmd.Execute



solltest du



Set oRS = New Recordset

'oder Set oRS = CreateObject(ADODB.Recordset



oRS.Open ...



verwenden.







Bei Execute hast du bezüglich des CursorTypes und LockTypes keine Wahlmöglichkeit, bei Open kannst du das als Parameter angeben.



Aus der ADO-Hilfe:



RecordCount-Eigenschaft





Gibt die aktuelle Anzahl von Datensätzen in einem Recordset-Objekt an.



Rückgabewert



Gibt einen Long-Wert zurück.



Hinweise



Verwenden Sie die RecordCount-Eigenschaft, um die Anzahl der Datensätze in einem Recordset-Objekt festzustellen. Die Eigenschaft gibt -1 zurück, wenn ADO die Anzahl von Datensätzen nicht bestimmen kann, oder wenn der Provider oder der Cursortyp RecordCount nicht unterstützt. Das Lesen der RecordCount-Eigenschaft bei geschlossenem Recordset-Objekt verursacht einen Fehler.



Wenn das Recordset-Objekt die ungefähre Positionierung oder Lesezeichen unterstützt, d. h. wenn Supports (adApproxPosition) oder Supports (adBookmark) den Wert True zurückgibt, stellt dieser Wert die exakte Anzahl an Datensätzen im Recordset-Objekt dar, unabhängig davon, ob alle Datensätze geladen wurden. Falls das Recordset-Objekt die ungefähre Positionierung nicht unterstützt, kann diese Eigenschaft einen erheblichen Verbrauch an Ressourcen verursachen, da alle Datensätze abgerufen und gezählt werden müssen, damit ein präziser RecordCount-Wert zurückgegeben werden kann.



Es hängt vom Cursortyp des Recordset-Objekts ab, ob die Anzahl der Datensätze bestimmt werden kann. Die RecordCount-Eigenschaft gibt -1 für einen Vorwärtscursor(=adOpenForwardOnly), das tatsächliche Zählergebnis für einen statischen Cursor oder Cursor vom Typ Schlüsselgruppe, und entweder -1 oder das tatsächliche Zählergebnis für einen dynamischen Cursor zurück, je nach Datenquelle.


Gruß
Gaga

___________________________________________________________________

Profilösungen für VB6
wenn nicht anders angegeben, sind alle Codebeispiele nicht getestet, nur getippt


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: