Hallo!
> Set RS_Count = CreateObject("ADODB.Recordset")
> CountSQLStmt = "SELECT Count(*) AS RSCount FROM MyTable "
> RS_Count.Open CountSQLStmt, Connection, adOpenKeyset
> Response.Write RS_Count("RSCount") & " files found"
> Set RS_Count = Nothing
>
> Noch schneller wirds, wenn man statt * ein Feld angibt...
Hm, das macht man, wenn man die Datens�tze nur z�hlen und nicht einzeln
ausgeben m�chte. Allerdings ist "Select count(*)" deutlich schneller,
als "Select count(feldname)", weil die Datenbank dann einfach direkt die
Anzahl der Tebellenzeilen zur�ckgibt, ohne zu pr�fen, ob ein Feld
Eintr�ge hat. "Select count(Telefonnummer)" gibt die Anzahl der Zeilen
zur�ck, bei denen das Feld Telefonnummer nicht NULL ist.
Wenn man dagegen die Datens�tze auch ausgeben m�chte, sollte man nur
einen Zugriff machen. Der Static-Cursor stellt dann (unabh�ngig von der
CursorLocation) in "rs.RecordsCount" die Anzahl der selektierten Zeilen
bereit. Ich verwende dann oft auch "rs.AbsolutePosition" um die Ausgabe
sch�ner zu formatieren (Erste/Letzte Zeile, gerade/ungerade
Zeilennummer).
Und wenn man die Datens�tze nur ausgeben m�chte, dann ist man mit dem
Firehose-Cursor und "rs.GetString" und "rs.GetRows" schneller.
Und weil ich es lange nicht mehr gesagt habe:
1. Keyset- und Dynamic-Cursor haben im Web nichts zu suchen.
2. Fast immer ist ein Client-Side-Cursor im Web besser.
3. SQL-Statements sind in der Datenbank besser aufgehoben als im
VBScript-Code.
Freundliche Gr��e
Joachim van de Bruck
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp