Das von dir beschriebene Verhalten ist in Berlin nicht zu reproduzieren. So ich das verstanden habe. Möglw. ist eine Einstellung bei der
Query geändert. Deswegen sollten wir mal schauen was ankommt usw...
Monitore einfach das Statement im FireDAC Monitor. Ich habe die TFDQuery einfach genommen wie sie in der Tool Palette verweilte.
rd = TFDMoneRemoteClientLink. Der macht die Verbindung zwischen Applikation und FireDAC Monitor. Du kannst aber genauso ein File mitschreiben. Dann siehst du was ankommt bei der
DB.
Delphi-Quellcode:
procedure TForm1.bnMemTabClick(Sender: TObject);
begin
if not fdc.Connected then fdc.Connected:=true;
(* cmd.Active:=true;
cmd.CommandText.Clear;
cmd.CommandText.add('select * from Customer');
if not memt.Active then memt.Active:=true;
lbx.Items.Add(IntToStr(memt.RecordSize));*)
qry.Close;
qry.SQL.Clear;
qry.SQL.Add('select * from customer');
qry.Active:=true;
if not cds.Active then cds.Active:=true;
Delphi-Quellcode:
procedure TForm1.bntestClick(Sender: TObject);
begin
try
if not rcl.Tracing then rcl.tracing:=true;
cds.Insert;
cds.FieldByName('CUST_NO').AsString:='9990';
cds.FieldByName('CUSTOMER').AsString:='Bunny';
cds.Post;
cds.ApplyUpdates(-1);
finally
rcl.tracing:=false;
end;
end;
Ich kann zwar das Problem umgehen, aber ich würde es gern verstehen:
Ich tausche gerade in einem Projekt TSQLQuery durch TFDQuery. An der
Query hängt ein Datasetprovider mit Clientdataset. Mein
sql-Statement lautet (alles klein geschrieben)
select * from moule
Also ziemlich simpel und einfach. Im Projekt wird irgendwo ein Clientdataset.insert gefolgt von einem Post gemacht. Dabei kommt eine
Exception Tabelle nicht gefunden und im Call stack sehe ich, im
SQL Statement steht ein:
Insert into "moule" ...
Also Tabellenname in Kleinschrift mit Anführungszeichen. Firebird macht per Default immer Großschrift, daher Tabelle nicht gefunden.
Nun mach ich einen
Unit-Test für das Insert, und siehe da, der Test läuft durch. In dem
SQL Statement steht
Insert into "MOULE"
Nun stellt sich die Frage: Warum? Projekt und Test benutzen die selbe Verbindung, die selben Parameter.