Also so viel wie ich weiß und ich benutze das auch so, bekommst du
wenn du mit rowid aufrufst im ersten Datensatz immer die Anzahl der
Datensätze.
In deinem Fall is idxfield(1).integerValue die Anzahl der Datensätze.
Alle weiteren Felder verschieben sich dann um einen Wert wenn du mit
idxfield(integervalue).stringvalue aufrufst
Deshalb empfehle ich immer mit rsDaten.field("Klasse").stringvalue das
Feld direkt anzugeben...
Warum bei dir beim zweiten Durchlauf die Daten des ersten Datensatzes
fehlen sehe ich auf Anhieb leider nicht.
Gruß
Stefan
Aha, siehstduwohl, irgendetwas musste doch sein!
Durchaus rufe ich neben anderen Feldern die rowID auf (brauche ich
auch).
rsDaten = DB_Inst.SQLSelect("SELECT rowID, Klasse, NrInKlasse,
NAME_VORNAME, Geschlecht, " + aktuSQL_SELECTString + " FROM tblAlles
WHERE " + aktuSQL_WHEREString)
Aber dennoch kapiere ich das nicht gleich:
Beim 1.Durchgang durch das RecordSet sind die Daten des
1.Datensatzes ja vollständig da. Warum sollte das beim 2.Durchgang
anders sein?
Zudem, wenn der 1.Datensatz für irgendetwas reserviert ist, wo
sollten dann meine "ersten" Daten geblieben sein? Immerhin, der
1.Datensatz hat alle aufgerufenen Felder und die Felder haben auch
den richtigen Feld-Namen, nur, es werden die Feld-Inhalte nicht
angezeigt.
Vielleicht kannst du mir das noch erklären, lieber Stefan.
einstweilen beste Grüße, Christian Hahn.
----- Original Message ----- From: "Stefan Sicurella" <[email protected]
>
To: "REALbasic NUG German" <[email protected]>
Sent: Monday, June 08, 2009 8:49 AM
Subject: Re: RecordSet MoveFirst
Hallo Christian,
wie sieht denn dein sqlseclect aus?
Falls du es mit rowid aufrufst ist der erste Datensatz immer die
Anzahl der rowids
Gruß
Stefan
Hallo, ich habe aus meiner RealSQLDatabase ein RecordSet rsDaten
erstellt.
Mit rsDaten.MoveFirst gehe ich an den Anfang des RecordSet und
durchlaufe das RecordSet mit rsDaten.MoveNext.
Für den 2.Durchlauf gehe ich mit rsDaten.MoveFirst wieder auf den
1. Datensatz.
msgbox str(rsDaten.EOF) gibt aber True an.
Dennoch durchlaufe ich das RecordSet ein zweites Mal.
Es werden auch alle Datensätze zurückgegeben, jedoch die Werte des
1.Datensatzes bleiben leer, alle anderen Werte werden korrekt
zurückgegeben.
Kann man sich das erklären? Ich werde noch verrückt.
beste Grüße, Christian Hahn.
for n= 1 to 3
tmpText = ""
rsDaten.MoveFirst
for i= 1 to rsDaten.RecordCount
for j = 1 to rsDaten.FieldCount
tmpText = tmpText + ";" + rsDaten.IdxField(j).Name +": " +
rsDaten.IdxField(j).StringValue
next 'nächstes DatenFeld
tmpText = tmpText + EndOfLine
rsDaten.MoveNext
next 'nächster Datensatz
msgbox tmpText
next ' nächster Durchlauf