SQL Syntax Fehler

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Urs O.
Beiträge: 2
Registriert: Do, 20.05.2010 09:40

SQL Syntax Fehler

Beitrag von Urs O. »

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!
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: SQL Syntax Fehler

Beitrag von DPunch »

Aloha

Versuch mal folgendes:

Code: Alles auswählen

sSQL = "UPDATE tabelle1 SET `Anzahl im Lager` = `Anzahl im Lager` - `Entnahmemenge`"
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.
Antworten