rs.RecordCount liefert falschen Wert

23/10/2007 - 15:35 von Dominik Sauer | Report spam
Hallo NG,

ich benutze vb.net (2005) um auf einen MySQL-Server (5.0.45)
zuzugreifen.

Beim Laden meines Formulars öffne ich die Connection über den {MySQL
ODBC 3.51 Driver} und ADODB.
Dies funktioniert.

Nun öffne ich ein Recordsetobjekt einer Tabelle und lese die Daten.

Leider gibt mir rs.RecordCount immer "-1" zurück. Egal wieviele
Datensàtze die Tabelle beinhaltet.

Ich hoffe ihr könnt mir helfen.

MfG Dominik
 

Lesen sie die antworten

#1 Peter Götz
23/10/2007 - 15:57 | Warnen spam
Hallo Dominik,

ich benutze vb.net (2005) um auf einen
MySQL-Server (5.0.45) zuzugreifen.

Beim Laden meines Formulars öffne ich die
Connection über den {MySQL ODBC 3.51 Driver}
und ADODB.



Warum ADODB und nicht ADO.net?

Dies funktioniert.

Nun öffne ich ein Recordsetobjekt einer Tabelle
und lese die Daten.

Leider gibt mir rs.RecordCount immer "-1" zurück.
Egal wieviele Datensàtze die Tabelle beinhaltet.



Dann hast Du vermutlich Dein Recordset mit
serverseitigem Cursor (RS.Location = adUseServer)
geöffnet und bekommst deshalb keine gültigen Werte,
solange Du den Datensatzzeiger noch nicht bis zum
letzten Datensatz (z.B. via RS.MoveLast) bewegt hast.

Ich hoffe ihr könnt mir helfen.



Dim NumRecords as integer

RS.MoveLast
NumRecords = RS.RecordCount

Besser wàre es aber sicher, Du würdest gleich mit
clientseitigem Cursor (RS.CursorLocation = adUseClient)
arbeiten, da dies erheblich ressourcenschonender
ist. Bei einem Recordset mit clientseitigem Cursor
bekommst Du jederzeit Werte für .RecordCount auch
ohne vorheriges RS.MoveLast.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen