J Joe73 Active Member Licensed User Apr 16, 2018 #1 Hallo, ich habe mal wieder eine Frage zum Thema SQL. Es ist wohl möglich die Daten aus einem Array in eine Tabelle zu übertragen in einem Zug. ich es im Gegensatz auch möglich, die Daten aus einer Tabelle bzw. vom Cursor in ein Array zu übertragen ohne mit einer Schleife zu arbeiten? vilen Dank schon mal für Eure Hilfe.. mfg Jürgen
Hallo, ich habe mal wieder eine Frage zum Thema SQL. Es ist wohl möglich die Daten aus einem Array in eine Tabelle zu übertragen in einem Zug. ich es im Gegensatz auch möglich, die Daten aus einer Tabelle bzw. vom Cursor in ein Array zu übertragen ohne mit einer Schleife zu arbeiten? vilen Dank schon mal für Eure Hilfe.. mfg Jürgen
DonManfred Expert Licensed User Longtime User Apr 16, 2018 #2 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?
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?
J Joe73 Active Member Licensed User Apr 16, 2018 #3 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... mfg Jürgen
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... mfg Jürgen
DonManfred Expert Licensed User Longtime User Apr 16, 2018 #4 Joe73 said: Cursor.Position usw. zu gehen, ob das geht würde ich gerne wissen Click to expand... 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.
Joe73 said: Cursor.Position usw. zu gehen, ob das geht würde ich gerne wissen Click to expand... 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.
MarkusR Well-Known Member Licensed User Longtime User Apr 16, 2018 #5 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. Code: Type Table1(a As String,b As Int, c As Float)
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. Code: Type Table1(a As String,b As Int, c As Float)
DonManfred Expert Licensed User Longtime User Apr 16, 2018 #6 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.
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.
MarkusR Well-Known Member Licensed User Longtime User Apr 16, 2018 #7 was mir so vor schwebt um das zu vereinfachen fantasie code: Code: 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
was mir so vor schwebt um das zu vereinfachen fantasie code: Code: 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 Expert Licensed User Longtime User Apr 16, 2018 #8 du kannst mit einem Index nicht auf die Einträge in RowDataType zugreifen. Das klappt so nicht. du musst die schon manuell befüllen... Code: RowDataType.a = "String hier"
du kannst mit einem Index nicht auf die Einträge in RowDataType zugreifen. Das klappt so nicht. du musst die schon manuell befüllen... Code: RowDataType.a = "String hier"
MarkusR Well-Known Member Licensed User Longtime User Apr 16, 2018 #9 @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.
@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.
DonManfred Expert Licensed User Longtime User Apr 16, 2018 #10 MarkusR said: dann ist das quasi ein Feature Request Click to expand... Den Du im entsprechendem Forum stellen solltest. Hier sieht das niemand als Feature-Request an.
MarkusR said: dann ist das quasi ein Feature Request Click to expand... Den Du im entsprechendem Forum stellen solltest. Hier sieht das niemand als Feature-Request an.
MarkusR Well-Known Member Licensed User Longtime User Apr 16, 2018 #11 @DonManfred jo hatte ich auch so getan
OliverA Expert Licensed User Longtime User Apr 16, 2018 #12 Joe73 said: Es ist wohl möglich die Daten aus einem Array in eine Tabelle zu übertragen in einem Zug. Click to expand... Benuetze eine methode? Siehe DBUtil's ExecuteMemoryTable (https://www.b4x.com/android/forum/threads/b4x-dbutils-2.81280/#content).
Joe73 said: Es ist wohl möglich die Daten aus einem Array in eine Tabelle zu übertragen in einem Zug. Click to expand... Benuetze eine methode? Siehe DBUtil's ExecuteMemoryTable (https://www.b4x.com/android/forum/threads/b4x-dbutils-2.81280/#content).
MarkusR Well-Known Member Licensed User Longtime User Apr 16, 2018 #13 jemand schrieb es ist wohl möglich die Felder in Types aufzulisten über ein paar kleine Funktionen die das dann erlauben. https://www.b4x.com/android/forum/threads/access-fields-in-type-at-runtime.91961/
jemand schrieb es ist wohl möglich die Felder in Types aufzulisten über ein paar kleine Funktionen die das dann erlauben. https://www.b4x.com/android/forum/threads/access-fields-in-type-at-runtime.91961/
KMatle Expert Licensed User Longtime User Apr 16, 2018 #14 Ich nutze nur Lists mit Maps. 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.
Ich nutze nur Lists mit Maps. 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.
J Joe73 Active Member Licensed User Apr 17, 2018 #15 Hallo, vielen Dank für Eure Hinweise. Ich werde mich mal damit beschäftigen. mfg Jürgen