Autor Beitrag
bockwurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 191

win98 /XP
D1 D5 Prof DE2005PE
BeitragVerfasst: Mo 02.05.05 14:15 
Habe ein Problem mit LocaoSQL, einer Query:TQuery und wenn ich mit "A" und "B" arbeite. Nur mit "A" und (s3:=s2+', Datenbank2 B';) ist alles OK
z.B: "Insert INTO TEST SELECT * FROM BANK1 A, BANK2 B"
"WHERE ..."
.... hier kommt Fehlermeldung
Ungültiger Parameter ...

nur "Insert INTO TEST SELECT * FROM BANK1 A"
"WHERE ..."
Läuft wunderbar.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
   AbfrageQuery :TQuery;
   ...
   
   AbfrageQuery.Close;
   AbfrageQuery.SQL.clear;
   ...

   s1:='INSERT INTO "'+ZielPfad+'\Datenbank03" '
   s2:= s1+'SELECT * FROM Datenbank01 A ';
   s3:=s2+', Datenbank2 B';   
    
   AbfrageQuery.SQL.Add(s3) 
   AbfrageQuery.SQL.Add(weitere Bedinnungen);
   try
     AbfrageQuery.ExecSQL;   //-> hier die Fehlermeldung
     result:=true;
   except
     on E: Exception do
     begin
       MessageDlg(E.Message, mtError, [mbOk], 0);
       result:=false;
     end;
   end;


Was habe ich falsch gemacht?
Wenn ich das ganze unter einem Datenbank-Exlorer laufen lasse, kommt das "richtige" Ergebeniss.Nur hier im meinem Delphi5-Porg kommt eine Exception.
Wenn ich das Insert weglasse und nur mit Seleect und Open ist auch alles OK!