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







Antwort per Email an