AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FDQuery und Kleinschreibung
Thema durchsuchen
Ansicht
Themen-Optionen

FDQuery und Kleinschreibung

Ein Thema von Rainer Wolff · begonnen am 21. Jul 2016 · letzter Beitrag vom 23. Jul 2016
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#1

FDQuery und Kleinschreibung

  Alt 21. Jul 2016, 10:41
Datenbank: Firebird • Version: 2.5 • Zugriff über: Firedac
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.
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: FDQuery und Kleinschreibung

  Alt 23. Jul 2016, 12:10
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.
Angehängte Dateien
Dateityp: 7z Trace_160723_1123.7z (1,3 KB, 3x aufgerufen)
Dateityp: zip Trace_160723_1123.zip (1,5 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz