PDA

View Full Version : CL > SQL ??



sirdidi
27-03-03, 16:00
Hallo,

bräuchte mal Nachhilfe in CL <> SQL.Ich habe sowas noch nie ausprobiert.
Leider findet mal im Netz nichts, was da hilfreich ist und einen weiterbringt.

Also, ich will mit einem CL-Programm SQL-statments ausführen.
Leider bekomme ich dann den folgenden Fehler:
SQL9010 von TESTC000 bei 300 empfangen.


Was habe ich bis jetzt zustande gebracht.
1. ein CL-Programm das so aussieht:

PGM RUNSQLSTM SRCFILE(MBLIB/QSQLSTM) SRCMBR(SQL0001)
ENDPGM

2. eine SRC-File mit dem SQL-Statment
delete from lib/file where aufnr = '102856'

Wo liegt mein Fehler? Wie kann ich die
Auftragsnummer durch eine Variable ersetzen (&Aufnr???)
Und wie bekomme ich die vom CL in das SQL-Statment?
Gibts irgendwo einen einfachen CL-code mit entsprechender SQL-Anweisung, wo man sowas mal abschreiben und ausprobieren kann??

Vielen Dank schon mal für Euere Hilfe.

Gruß Ralph

ERTH
27-03-03, 16:41
Hallo SirDiDi,

die Lösung (fast) aller Deiner Probleme liegt in der Verwendung des Query Managers.
Mit STRQM starten, Abfrage erstellen (natürlich auch mit Variablen).
Im CL den Befehl STRQMQRY verwenden.
In den Foren gibt es zu diesen Stichworten noch mehr zu finden.

sirdidi
28-03-03, 10:10
@erth
danke Dein Hinweis hat mich schon weitergebracht und es funzt auch schon Variablen ein-/übergeben und die Daten auszulesen.

Aber wie ist das mit DELETE im QM.
Wenn ich von SELECT auf DELETE ändere
bekomme ich den Hinweis auf ein Berechtigungsprobem (obwohl ich doch
alle Rechte habe?)

Fuerchau
28-03-03, 10:23
Lass dir vom Administrator (QSECOFR) über STRQM die Berechtigung geben, andere SQL-Befehle als SELECT zu verwenden.
Diese Rechte werden auch über STRQM vergeben.

bateau
28-03-03, 10:23
Hallo Didi,

in QM wird automatisch für jeden Benutzer ein eigenes QM-internes Profil angelegt, da sind die zulässigen Operationen definiert. Standardmäßig geht wenn ich micht recht erinnere nur der SELECT.

Du mußt also dein Profil anpassen: Option 10 "Work with Query Manager Profiles" im Hauptmenü von QM, dann das zu ändernde Profil mit 2 (change) auswählen und auf der dritten Seite findest Du die Option "Select Allowed SQL Statements". Hier ein "Y" und einmal die Enter-Taste, schon siehst Du was Sache ist.

Griesse

Martin

P.S.: Mann, was hab ich damals rumgeblättert bis ich das gefunden hatte.

@Fuerchau: Meine Erklärung ist viel schöner, ich finde trotz gleicher Uhrzeit müßte mein Beitrag vor deinem stehen ;-)

[Dieser Beitrag wurde von bateau am 28. M&auml;rz 2003 editiert.]

Gimli
09-04-03, 12:53
Hallo Didi,

um auf Dein eigentliches Problem zurück zu kommen, versuche folgendes:
PGM RUNSQLSTM SRCFILE(MBLIB/QSQLSTM) SRCMBR(SQL0001) + COMMIT(*NONE)
ENDPGM
Wenn Du dem Programm nicht sagst, dass Du keine Commit-Steuerung möchtest, bekommst Du Deine Fehlermeldung.

Viel Erfolg, Marc

sirdidi
10-04-03, 10:17
@alle

Danke für die zahlreichen Tips und Tricks.
Hoffe es können auch andere davon profitieren.


Gruß Ralph