Anmelden

View Full Version : SQL-Befehl im CL



Seiten : [1] 2

dino
04-07-08, 08:47
Hallo AS/400-Gemeinde, wie bette ich einen SQL-Befehl (z.B. "delete from bib/dat where kdnr = 4711) in ein CL ein?

prsbrc
04-07-08, 09:17
Hi!
Wenn es sich um ein Statement handelt, welches immer gleich bleibt kannst du das STatement in eine Teildatei schreiben und diese dann mittels RUNSQLSTM im CL ausführen lassen.

RUNSQLSTM SRCFILE(LIB/SRCFILE) SRCMBR(MEMBER)

!! Auf die COMMIT-Steuerung aufpassen !!

MfG

Pikachu
04-07-08, 09:29
Oder die SQL-Anweisung in ein QM-Query schreiben und dieses dann mit STRQMQRY aufrufen. Dabei sind dann auch Variablen möglich (bei den Variablennamen auf Groß/Kleinschreibung achten!).

dino
04-07-08, 10:24
Danke für die schnelle Antwort. Habe eine QSQLSRC mit einem Member SQLCMD001 angelegt mit einerm Select-Befehl und im CL den entspr. RUNSQLSTM. Fehler SQL9010 kommt ... Was ist die "Commit"-Steuerung?

Pikachu
04-07-08, 10:52
Soweit ich weiß ist beim RUNSQLSTM leider kein SELECT möglich. Beim RUNSQLSTM wird aber eine Spooldatei erstellt. Da steht vielleicht genaueres zu diesem Fehler drin.

Die COMMIT-Steuerung regelt, wie und wann Änderungen an Dateien festgeschrieben werden. Falls du das nicht einsetzt, dann solltest du den Parameter "COMMIT-Steuerung" beim Aufruf mit RUNSQLSTM auf *NONE setzen.

prsbrc
04-07-08, 10:53
Hi!
Vieleicht hilft dir das InfoCenter weiter und ich bin mir nicht sicher ob eine SELECT - Anweisung mit dem RUNSQLSTM funktioniert.
Updates und Deletes sollten aber funktionieren.

Run SQL Statements (RUNSQLSTM) (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/cl/runsqlstm.htm?resultof=%22%52%55%4e%53%51%4c%53%54 %4d%22%20%22%72%75%6e%73%71%6c%73%74%6d%22%20#RUNS QLSTM.COMMIT)

MfG

dino
04-07-08, 11:23
Danke, aber noch eine Frage: Welche Art muß die Teildatei haben? Ich habe sie als "TXT" angelegt

schatte
04-07-08, 11:43
Hallo,

schau dir mal folgenden Beitrag an:
http://www.newsolutions.de/forum-systemi-as400-i5-iseries/system-i-hauptforum/11236-dynamisches-sql-einem-cl-erstellen.html

Den RUNSQL Command kannst du dir hier runterladen:
Willkommen zu Schatte's Seite (http://schatte.no-ip.info/downloads/index.htm)

Gruß
Matthias

dino
04-07-08, 12:07
Alles klar: Nach Einfügen des Commit-Parameters (*none) läuft mein DELETE über den Membereintrag sauber.

Fuerchau
04-07-08, 12:18
Nur so am Rande:
RUNSQLSTM ist nur in Verbindumg mit STRSQL zu haben.
Ist STRSQL nicht möglich (nicht installiert), gibts auch kein RUNSQLSTM.

Andererseits sind QMQRY-Objekte immer ausführbar.