SQL - mehrere UPDATE-Anweisungen in einem String per vbs
Hallo,
ich möchte mehrere Werte in eine MySQL-Datenbank mittels vbs-Script eintragen. Eigentlich besteht jede Zeile aus "Update... ;", bei der letzten Zeile entfällt das Semikolon. Funktioniert ja auch. Wenn eine einzelne Zeile per vbs update funktioniert es auch. Wie kann ich mehrere Zeilen in einem einzelnen String übergeben? In eine Zeile mittels ";" getrennt geht nicht. Auch eine Trennung wie unten mittels vbCrLf oder vbLf funktioniert nicht, immer wird als Fehlermeldung der SQL-String angemeckert.
Irgendwie bin ich gerade ziemlich ratlos...
Gruß goodbytes
ich möchte mehrere Werte in eine MySQL-Datenbank mittels vbs-Script eintragen. Eigentlich besteht jede Zeile aus "Update... ;", bei der letzten Zeile entfällt das Semikolon. Funktioniert ja auch. Wenn eine einzelne Zeile per vbs update funktioniert es auch. Wie kann ich mehrere Zeilen in einem einzelnen String übergeben? In eine Zeile mittels ";" getrennt geht nicht. Auch eine Trennung wie unten mittels vbCrLf oder vbLf funktioniert nicht, immer wird als Fehlermeldung der SQL-String angemeckert.
strSQL = "UPDATE MyDatabase.MyTab SET messageon=0 WHERE User='Mustermann';" & vbCrLf & "UPDATE MyDatabase.MyTab SET expires=0 WHERE User='Mustermann';" & vbCrlf & "UPDATE MyDatabase.MyTab SET expiredate='2016-07-11 00:00:00' WHERE User='Mustermann'"
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
strConnectionString = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;" & _
"DATABASE=MyDatabase;" & _
"USER=admin;" & _
"PASSWORD=Password;" & _
"OPTION=11;"
objConnection.Open(strConnectionString)
Set objRecordset = objConnection.Execute(strSQL)
objRecordset.Open
objConnection.Close()
Irgendwie bin ich gerade ziemlich ratlos...
Gruß goodbytes
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 310186
Url: https://administrator.de/contentid/310186
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
was hindert Dich daran, jedes Kommando einzeln mit "Execute" zu übergeben?
Ich bin jetzt der SQL-Experte, aber mir ist so, als wenn nach dem ";" ein Leerzeichen folgen muss ....
E.
was hindert Dich daran, jedes Kommando einzeln mit "Execute" zu übergeben?
strSQL1 = "UPDATE MyDatabase.MyTab SET messageon=0 WHERE User='Mustermann'
strSQL2 = "UPDATE MyDatabase.MyTab SET expires=0 WHERE User='Mustermann'
strSQL3 = "UPDATE MyDatabase.MyTab SET expiredate='2016-07-11 00:00:00' WHERE User='Mustermann'"
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
strConnectionString = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;" & _
"DATABASE=MyDatabase;" & _
"USER=admin;" & _
"PASSWORD=Password;" & _
"OPTION=11;"
objConnection.Open(strConnectionString)
Set objRecordset = objConnection.Execute(strSQL1)
Set objRecordset = objConnection.Execute(strSQL2)
Set objRecordset = objConnection.Execute(strSQL3)
objRecordset.Open
objConnection.Close()
Ich bin jetzt der SQL-Experte, aber mir ist so, als wenn nach dem ";" ein Leerzeichen folgen muss ....
E.
Moin goodbytes,
ich bin nicht ganz sicher, ob ich dein Anliegen richtig verstehe.
Wenn du mehrere Spalten in demselben Datensatz (oder derselben Datenmenge) updaten willst, dann würde aus
...diese UPDATE-Anweisung.
Wenn du mehrere UPDATEs auf unterschiedliche Datensätze und/oder in verschiedenen Tabellen machst, dann sind und bleiben es mehrere UPDATE-Anweisungen, die du nicht sinnvoll zu einem Block zusammenfassen kannst.
Grüße
Biber
ich bin nicht ganz sicher, ob ich dein Anliegen richtig verstehe.
Wenn du mehrere Spalten in demselben Datensatz (oder derselben Datenmenge) updaten willst, dann würde aus
' Dein Beispiel
strSQL = "UPDATE MyDatabase.MyTab SET messageon=0 WHERE User='Mustermann';" & vbCrLf & "UPDATE MyDatabase.MyTab SET expires=0 WHERE User='Mustermann';" & vbCrlf & "UPDATE MyDatabase.MyTab SET expiredate='2016-07-11 00:00:00' WHERE User='Mustermann'"
...
...diese UPDATE-Anweisung.
strSQL = "UPDATE MyDatabase.MyTab SET messageon=0, expires=0, expiredate='2016-07-11 00:00:00' WHERE User='Mustermann';"
Wenn du mehrere UPDATEs auf unterschiedliche Datensätze und/oder in verschiedenen Tabellen machst, dann sind und bleiben es mehrere UPDATE-Anweisungen, die du nicht sinnvoll zu einem Block zusammenfassen kannst.
Grüße
Biber