German InsertMaps mit mehreren Datensätzen ?

Kanne

Member
Licensed User
Longtime User
Hi,

in der DBUtils steht, dass man mit "InsertMaps" sofort mehrere Datensätze in die DB schreiben kann (per ReDim auf die map);
hat jemand einmal ein Beispiel bzw. kurze Info, wie mein Code das mit einem Aufruf machen kann ?

So mache ich das zZt (ist natürlich bei vielen Datensätzen recht lahm):

INSERT einzeln:
                Dim mp As Map
                Dim maps As List
                For i = 1 To 5
                    maps.Initialize
                    mp.Initialize
                    mp.Put( "Name_Spieler", "Spieler" & NumberFormat(i,2,0))
                    maps.Add(mp)
                    DBUtils.InsertMaps(SQL1, "Spielerstamm",  maps)
                Next
 

OliverA

Expert
Licensed User
Longtime User
Versuche:
B4X:
                Dim maps As List
                maps.Initialize
                For i = 1 To 5
                    maps.Add(CreateMap("Name_Spieler": "Spieler" & NumberFormat(i,2,0)))
                Next
                DBUtils.InsertMaps(SQL1, "Spielerstamm",  maps)
 

Kanne

Member
Licensed User
Longtime User
ja, prima - das funktioniert so, ist aber bei vielen Spalten ziemlich unübersichtlich, wenn man alle Werte in das eine Statement packen muss.
Wie wäre das denn mit der Map lösbar ? das "mp.put" überschreibt anscheinend den alten Wert ...
 

OliverA

Expert
Licensed User
Longtime User
Entweder:
B4X:
Dim maps As List
maps.Initialize
For i = 1 To 5
   maps.Add(CreateMap("Name_Spieler": "Spieler" & NumberFormat(i,2,0), _
                      "Ort": "Irgendwo", _
                      "PLZ": "99999"))
Next
DBUtils.InsertMaps(SQL1, "Spielerstamm",  maps)

Oder:
B4X:
Dim maps As List
maps.Initialize
For i = 1 To 5
        Dim mp As Map '<== Wichtig: Für jede Schleifenausführung eine neue Map
        mp.Initialize
        mp.Put("Name_Spieler", "Spieler" & NumberFormat(i,2,0))
        mp.Put("Ort", "Irgendwo")
        mp.Put("PLZ", "99999")
        maps.Add(mp)
Next
DBUtils.InsertMaps(SQL1, "Spielerstamm",  maps)
 

DonManfred

Expert
Licensed User
Longtime User
Last edited:

Kanne

Member
Licensed User
Longtime User
ah - ok, verstanden.
Da habe ich das "ReDim" in der DBUtils falsch verstanden:
mit ReDim konnte man ja früher eine Arraygröße neu festlegen,
gemeint ist hier aber ein erneutes DIM wie von euch beschrieben.

DANKE !!!
 
Top