View Full Version : Dynamische SQL ohne Cursor
Hallo ich möchte ein Dynamisches CREATE TABLE absetzen da ich einen zeitraum auswählen lasse.
wie kann ich dieses Statement dann absetzen?
ich habe es so Probiert:
c/exec sql
c+ prepare MyStmt from :MySql
c/end-exec
wobei MySql den Befehl enthält.
Danke für eure Hilfe.
MFG
Redsky
so:
/Free
WrkFile = %Trim(WrkFile) + %EditC(Monat: 'X');
SqlStm = 'Create Table ' + %Trim(WrkLib) + '/' + %Trim(WrkFile) +
' as (Select KUNDENR, Sum(WERT) as UMSATZ +
from UMSATZ +
Where Month(VerkDatum) = ' + %Char(Monat) +
' and Year(VerkDatum) = ' + %Char(Jahr) +
' Group By KUNDENR) +
with DATA ';
/End-Free
c/exec sql Execute immediate :SqlStm
C/End-exec
Birgitta
danke für die rasche antwort hat super funktioniert
geht das auch in einer schleife so mit fetch next oder so?
ich möchte eine Statement zusammenstöpseln und dann in einer Schleife auslesen
mit cursor
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR
c+ HIER DAS ZUSAMMENGESTÖPSELTE SQL
C/END-EXEC
C* ÖFFNEN DER SQL VERBINDUNG
C/EXEC SQL
C+ OPEN C1
C/END-EXEC
lg
steven_r
declare c1 cursor for statement MyStmt
Prepare MyStmt from :MySQL
Open C1
a) Fetch C1 into ....
b) Fetch C1 using :MYSQLDA
Bei Methode a) muss die Struktur bekannt sein, bei Menthode b) muss ich eine SQLDA-Struktur erstellen, die unter anderem Pointer auf Felder beinhaltet.
Beschrieben im SQL-Reference.
danke für die rasche hilfe
lg
steven_r
lass mal Statement weg!
declare c1 cursor for MyStmt
mfg
Dieter Bender