![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Firedac
FDQuery und Kleinschreibung
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. |
AW: FDQuery und Kleinschreibung
Liste der Anhänge anzeigen (Anzahl: 2)
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; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz