Du musst schon durch den Cursor iterieren. Ohne geht es nicht.
Für den anderen Weg. Was genau willst du machen. Grundsätzlich kannst Du aus einem array dir neue SQLs zusammen bauen um die in die DB zu schreiben. Oder verstehe ich hier was falsch?
Hallo,
Du hast es richtig verstanden.
Also den Weg über Cursor will ich auch gehen.
Ich möchte dann aber die ermittelten Daten welche im Cursor sind mit einmal in ein Array bringen, ohne den Weg über
Cursor.Position usw. zu gehen, ob das geht würde ich gerne wissen...
Habe dazu noch nichts gefunden...
Nein, geht nicht.
Lege Dir eine Liste an,
Iteriere durch den cursor, für jeden Eintrag im Cursor erstellst Du eine Map und packst diese Map dann in die Liste.
wenn das diese SQL Klasse nicht kann wäre es interessant zu wissen ob man beim Type an die Felder kommt
dann könnte man eine kleine Sub machen welche die Tabellen Werte in die Struktur einordnet.
Dazu kenne ich B4X zu wenig.
Ein CustomType wäre auch möglich. Aber auch hier musst du erstmal die Werte des Cursors in den Custom Type eintragen nachdem Du den Type initialisiert hast.
was mir so vor schwebt um das zu vereinfachen
fantasie code:
B4X:
Type RowDataType(a As String,b As Int, c As Float)
foreach row in sql.result
dim RowData as RowDataType
foreach column in row.Columns
RowData.Field(column) = row.GetInt(column)
next
list1.add(RowData)
next
@DonManfred dann ist das quasi ein Feature Request , ich meine in C# geht das über eine Reflection Klasse.
Dieses manuelle zuweisen finde ich voll nervig.
Man kann bei SQLite auch alle Daten der Row einfach in ein Stringarray schreiben und wieder zurück. Ein Floatwert von 2.54 ist dann halt ein String "2.54". Der Insert oder ein Update einer REAL-Spalte (= Float) ist problemlos möglich. Formatprüfungen kann man (z.B. bei der Eingabe) über IsNumber erledigen. So erpart man sich aufwändiges hin- und herschaufeln von Daten.