am 08.06.2009 9:29 Uhr schrieb Stefan Sicurella unter [email protected]:

Hi,

> 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.

Ich glaube, da hast Du was in den falschen Hals bekommen. Wenn man dieses
statement betrachtet:

> rsDaten = DB_Inst.SQLSelect("SELECT rowID, Klasse, NrInKlasse,
> NAME_VORNAME, Geschlecht, " + aktuSQL_SELECTString + " FROM tblAlles
> WHERE " + aktuSQL_WHEREString)

, dann ist die Behauptung

> In deinem Fall is idxfield(1).integerValue die Anzahl der Datensätze.

nicht richtig, vielmehr erhält man einfach die rowID des aktuellen
Datensatzes.

> 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.

Zufällig ist mir bekannt, das die recordset.movefirst-Implementierung für
einige DBs nicht funktioniert (was an den plugins liegen dürfte).
Wahrscheinlich ist das  einfach nur ein bug.

Warum musst Du den Recordset 2-mal durchlaufen? Lies doch alles was Du
brauchst beim ersten Versuch aus und lade den Inhalt halt in Arrays oder so.

Ciao,

Maximilian Tyrtania



Antwort per Email an