[ASP] Letzten Datensatz ermitteln

Hallo!

In die Variable str darf nur „,“ geschrieben werden, wenn es sich nicht um den letzten Datensatz handelt. Leider gibt es kein RSstichwort.Last wie in anderen Programmiersprachen.

While not RSstichwort.EOF

 'INSERT Stichwort
 str= Value(RSstichwort("Stichwort")) 
 Call WriteStr(str, FileStream)

 'Wie heißt das richtig in VBScript? 
 If not RSstichwort.Last 
 str = "," 
 Call WriteStr(str, FileStream)
 End If 

 RSstichwort.MoveNext
Wend 

Ich habe auch schon probiert mit RSstichwort.MoveLast den letzten Datensatz zu ermitteln, mir die ID zu merken, und dann mit der des letzten Datensatzes zu vergleichen.

RSstichwort.MoveLast
Last = Value(RSstichwort("Stichwort"))
Response.Write(Last) 
RSstichwort.MoveFirst

Leider sagt er dann immer: „The rowset does not support fetching backwards.“ Der Fehler tritt bereits bei RSstichwort.MoveLast auf. Was mache ich falsch?

Grüße, Tanja

In die Variable str darf nur „,“ geschrieben werden, wenn es
sich nicht um den letzten Datensatz handelt. Leider gibt es
kein RSstichwort.Last wie in anderen Programmiersprachen.

Du könnstest die Abfrage in der Schleife nach dem MoveNext machen und auf EOF abfragen.

Oder falls du da in der Schleife irgendeinen String zusammenbaust einfach immer nach der Schleife automatisch das letzte Zeichen wegnehmen.

Leider sagt er dann immer: „The rowset does not support
fetching backwards.“ Der Fehler tritt bereits bei
RSstichwort.MoveLast auf. Was mache ich falsch?

Vermutlich hast du einen forward-only cursor und kannst nicht mehr zurück.

Grüße, Robert

Hallo Robert!

Du könnstest die Abfrage in der Schleife nach dem MoveNext
machen und auf EOF abfragen.

Danke für die schnelle Hilfe. Es funktioniert! :smile:
Manchmal bin ich wirklich schusselig und sehe die einfachsten Lösungen nicht!

Vermutlich hast du einen forward-only cursor und kannst nicht
mehr zurück.

Was mal wieder die „tollen“ Fähigkeiten von ASP und Access zeigt…

Grüße, Tanja

Was mal wieder die „tollen“ Fähigkeiten von ASP und Access
zeigt…

Dafür kann weder das eine noch das andre was, hängt davon ab wie du dein ADO-Recordset öffnest. :smile:

Du kannst das einerseits mit Open oder mit CursorType setzen, schau am besten im MSDN nach, da sind auch die erlaubten Konstanten dokumentiert.

Grüße, Robert