Thema: Delphi Parameter unter Firedac

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Parameter unter Firedac

  Alt 4. Mär 2016, 14:06
Hi zusammen

Vielen Dank für eure aufschlussreichen Antworten!

Zitat:
Die Parameter werden erzeugt in FireDAC.Phys.SQLPreprocessor.TFDPhysPreprocessor.E xecute
Danke,Sir Rufo! Schau ich mir mal an. Kein Wunder, dass ich unter
C:\Program Files (x86)\Embarcadero\Studio\16.0\source\data\firedac\stan\param nichts gefunden habe...
@DeddyH:
Zitat:
Query.ExecSQL('INSERT INTO Tabelle(Feld1, Feld2, Feld3) VALUES(:Wert1, :Wert2, :Wert3)', [1, 2, 3], [ftInteger, ftInteger, ftInteger]);
Das wirkt jetzt auf den ersten Blick etwas gewöhnungsbedürftig. Aber soweit ich sehe, ist das mit meinem Monster identisch.
Und wenn ich mehrere Zeilen draus mache, gehts übersichtlicher wirklich nicht mehr, ist aber immer noch viel kleiner:
Delphi-Quellcode:
Query.ExecSQL('INSERT INTO Tabelle(Feld1, Feld2, Feld3),'+
                            ' VALUES(:Wert1, :Wert2, :Wert3)',
                                    [1, 2, 3],
                                    [ftInteger, ftInteger, ftInteger]);
Wobei Gruppe 3 offenbar die Indexes enthält. Ich werde das gleich hier mal umsetzen und auch die andern Prozeduren anpassen. Auch wenn das Ding genau(?) das getan hat, was es soll: die "Createparams" von DBExpress sind nicht nur überflüssig, sondern auch zuviel des Guten.

Zitat:
Fast alle DBZugriffskomponenten sollten die Parameter selber ertstellen, anhand des übergebenen SQL.
Außer man hat diese Funktion deaktiviert, wo die Komponente das SQL parst, nachdem es zugewiesen/geändert wurde.
@ himitsu:
Das FDQuery (Unter anderen) hat ein entsprechendes Boolean-Property - dessen Name hab ich inzwischen vergessen. Aber irgendwie ist es mir och lieber, ich übergebe die Parameter selber. Ist vielleicht etwas mehr Typarbeit, dafür ist klar, was abläuft.


Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat