Anmelden

View Full Version : SQL Delelte???



Seiten : 1 [2]

JonnyRico
21-02-05, 15:36
Hallo Birgitta,

danke das mache ich aber leider ist das noch nicht des Rätsels Lösung. Mir ist aber inzwischen aufgefallen, das das bei jedem Delete Statement in embedded SQL passtiert, wo ich eine Where Klausel mit eingeben will. Was mache ich da falsch?

Gruß

Sascha

Fuerchau
21-02-05, 16:53
Die "!" sind bei embedded SQL nicht erlaubt. Die STRSQL setzt die ja um.
SQL-richtig wäre "||", aber das ist nicht Code-Sicher (CCSID) !
Deshalb: verwende concat !!!

JonnyRico
21-02-05, 17:10
Jo,

hab ich ja gemacht. Nur mein Problem scheint irgendwie das Delete in Embedded SQL zu sein. Wenn ich da eine x-beliebige Where-Klausel einbaue bekomme ich im Prompt schon den Fehler angezeigt :(

Fuerchau
21-02-05, 17:22
Schau mal GENAU deine Quelle an:

c/exex sql
c+ delete
c+ ...
c+ ...
c/end-exec

JonnyRico
21-02-05, 17:41
Es sieht genau so aus (Kopie aus Quelle) und es stehen darüber auch noch andere Statements. Da wird nicht gemeckert, aber ich habe es auch schon in einer anderen Quelle mit einem anderen Delete-Statement getestet und ... das selbe Problem



C/Exec SQL
C+ delete from Bestv/Bestart WHERE
C+ BEARTN CONCAT BEARTNV CONCAT BELG CONCAT BEFA Not in
C+ (SELECT FSARTN CONCAT FSARTNV CONCAT FSLG CONCAT
C+ FSFA as Key1 From QTEMP/TMPFSART)
C/End-Exec

Fuerchau
21-02-05, 18:42
Könnte höchsten noch das "as Key1" sein, da das nicht erforderlich ist, kommt der Precompiler vielleicht nicht damit zurecht. Lass es einfach mal weg.

JonnyRico
22-02-05, 08:30
Guten Morgen,

autsch! Ich hätte vielleicht einfach mal wieder umwandeln sollen, nachdem ich die Pipes durch Concat ersetzt habe. Die Meldung mit der überschrittenen Länge steht im Prompt des Statements zwar immer noch aber es lässt sich jetzt kompilieren. Also sorry das ich euch damit aufgehalten habe und vielen vielen Dank für die Hilfe. Danke

Gruß

Sascha