Discussion:
[de-users] UPDATE Anweisung in Base Makro
Lutz Lehmann
10 years ago
Permalink
Hallo Listenleser und Listenschreiber,

ich habe angefangen mich in die Makroprogrammierung für meine
Base-Datenbank einzuarbeiten.
Öffnen und Auslesen von Daten funktioniert scheinbar so wie ich es will.
Beim UPDATE der Tabelle 'Personen' habe ich aber ein Problem. Ich denke
es hängt mit der korrekten
Schreibweise der UPDATE-Anweisung zusammen. Aber leider finde ich
nirgends so detailliert, wie ich
bei SET die Spalten aneinanderreihe. Und mit den ganzen " und CHR(34)
kommt man ja schnell mal
durcheinander.
Also hier mein Problembereich:

SQL-Anweisung im Makro

*Sql = "UPDATE " + CHR(34)+"Personen"+CHR(34) + " SET " +
CHR(34)+"PLZ"+CHR(34) + _
" = "+ sPLZ + ", " + CHR(34)+"Ort"+CHR(34) + " = " + sOrt + ", " +
CHR(34)+"Bundesland"+CHR(34) + _
" = " + sBundesland + " WHERE " + CHR(34)+"P_ID"+CHR(34) + " =
"+ID_Personen*


Ausgabe mit MsgBox Sql
*UPDATE "Personen" SET "PLZ" = 97851, "Ort" = Rothenfels, "Bundesland" =
Bayern WHERE "P_ID" = 4*


dann bei der Ausführung der Anweisung

*AbfrageErgebnis_1 = SQL_Anweisung.executeQuery(Sql)*

kommt der ...

BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Column not found: ROTHENFELS.

Bin im Moment ratlos und dankbar für jede hilfreiche Antwort.

Gruß Lutz

____________________________________________________________
FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!
Check it out at http://www.inbox.com/earth
--
Liste abmelden mit E-Mail an: users+***@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an
Robert Großkopf
10 years ago
Permalink
Hallo Lutz,
Post by Lutz Lehmann
SQL-Anweisung im Makro
*Sql = "UPDATE " + CHR(34)+"Personen"+CHR(34) + " SET " +
CHR(34)+"PLZ"+CHR(34) + _
" = "+ sPLZ + ", " + CHR(34)+"Ort"+CHR(34) + " = " + sOrt + ", " +
CHR(34)+"Bundesland"+CHR(34) + _
" = " + sBundesland + " WHERE " + CHR(34)+"P_ID"+CHR(34) + " =
"+ID_Personen*
Ausgabe mit MsgBox Sql
*UPDATE "Personen" SET "PLZ" = 97851, "Ort" = Rothenfels, "Bundesland" =
Bayern WHERE "P_ID" = 4*
So darf die Anweisung nicht aussehen. Bei Zahlen mag das noch angehen,
Text aber immer in Hochkommata setzen. Am sichersten ist das bei allen
Variablen, die Du einsetzt. Die Datenbank kümmert sich dann darum, dass
daraus Zahlen, Texte, Datumswerte usw. erstellt werden.

Ich habe im folgenden Code auch CHR(13) zugunsten der Verdoppelung der
Anführungszeichen raus geschmissen:
-------------
Sql = "UPDATE ""Personen"" SET ""PLZ" = '"+ sPLZ + "', ""Ort"" = '" +
sOrt + "', ""Bundesland"" = '" + sBundesland + "' WHERE ""P_ID"" =
'"+ID_Personen+"'"
Post by Lutz Lehmann
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Column not found: ROTHENFELS.
Hieran siehst Du: Die Eingabe 'Rothenfels' kann nicht gedeutet werden.
Und Spaltennamen werden in Großbuchstaben wieder gegeben, wenn sie nicht
in doppelte Anführungszeichen gesetzt werden.

Gruß

Robert
--
Liste abmelden mit E-Mail an: users+***@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste
Loading...