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)
 

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 !!!
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…