Bei meinem Problem handelt es sich um folgendes Makro:
DIM oResult As Object
sub sql_entnahme
dim mDBProperties(2) as New com.sun.star.beans.PropertyValue
mDBProperties(0).name = "user"
mDBProperties(0).value = "*******"
mDBProperties(1).Name = "password"
mDBProperties(1).value = "*******"
mDBProperties(2).Name = "JavaDriverClass"
mDBProperties(2).value = "com.mysql.jdbc.Driver"
oDriverManager = createUnoService("com.sun.star.sdbc.DriverManager")
oVerbindung = oDriverManager.getConnectionWithInfo("sdbc:mysql:jdbc:***.**.***.***:3306/******", mDBProperties())
oStatement = oVerbindung.CreateStatement()
sSQL = "UPDATE tabelle1 SET([Anzahl im Lager] = [Anzahl im Lager] - Entnahmemenge);" <-- Problemzeile 1
oStatement.executeUpdate(sSQL) <-- Problemzeile 2
oVerbindung.close()
end sub
Bei der Verbindungserstellung gibt es keine Fehlermeldung sondern bei dem SQL Kommando.
Ich habe eine Tabelle in der es mehrer Spalten gibt. Die interessanten Spalten sind dabei "Anzahl im Lager" und "Entnahmemenge". Durch Ausführung des Makros möchte ich von der Spalte Anzahl im Lager die korresponierenden Werte aus der Spalte Entnahmemenge abziehen. Beide sind als mediumint definiert.
Danach sollen die Werte der Spalte Entnahmemenge auf 0 zurückgesetzt werden. Könnte mir jemand helfen um die Problemzeilen 1 und 2 anzupassen?
Vielen Dank schon einmal im Vorraus!
SQL Syntax Fehler
Moderator: Moderatoren
Re: SQL Syntax Fehler
Aloha
Versuch mal folgendes:
Zwischen dem "SET" und der Zielspalte *muss* ein Leerzeichen sein.
Ausserdem darf die "SET"-Anweisung nicht geklammert sein.
Ob MySQL die eckigen Klammern versteht, weiss ich ehrlich gesagt nicht - ich kenne nur die Hochkomma-Syntax.
Versuch mal folgendes:
Code: Alles auswählen
sSQL = "UPDATE tabelle1 SET `Anzahl im Lager` = `Anzahl im Lager` - `Entnahmemenge`"
Ausserdem darf die "SET"-Anweisung nicht geklammert sein.
Ob MySQL die eckigen Klammern versteht, weiss ich ehrlich gesagt nicht - ich kenne nur die Hochkomma-Syntax.