Seite 1 von 1

Praktische Benutzung von Prepare

Verfasst: Mi 1. Sep 2021, 12:02
von zappa2
Mal eine grundsätzliche Frage zu Prepare: Wann wird das denn nun sinnvollerweise aufgerufen?
(A)Vor oder (B)nach dem Zuweisen der Feldwerte?

Code: Alles auswählen

myQuery.Close;

A) myQuery.Prepare;
myQuery.Params[0].Value := Wert1;
myQuery.Params[1].Value := Wert2;
B) myQuery.Prepare;

myQuery.Open;
Ich sehe beide Varianten in Beispielen, habe aber noch nirgends eine sinnvolle Erläuterung zu Prepare gefunden.

Re: Praktische Benutzung von Prepare

Verfasst: Mi 1. Sep 2021, 12:43
von bfuerchau
Das ist vollkommen egal.
Wichtig ist der SQL-String selber.
Dazu muss der String und die Parameterliste erstellt sein, dann ruft man den Prepare auf.
Anschließend kann man sooft man will die Paramterwerte verändern.
Ein Ändern der Parameterliste ist dann nicht mehr erlaubt.

Re: Praktische Benutzung von Prepare

Verfasst: Mi 1. Sep 2021, 13:04
von zappa2
Wie immer: Vielen Dank für die schnelle Antwort!

Re: Praktische Benutzung von Prepare

Verfasst: Do 2. Sep 2021, 10:23
von bfuerchau
Bei vielen Inserts und Updates z.B. kann mittels Parameterlisten und Prepare die Geschwindigkeit der Ausführung erheblich gesteigert werden als mit eingebetteten Konstanten.
Bei Abfragen wird eine Zugriffsanalyse (Indexverwendung) nur beim Prepare durchgeführt. Wiederholte Abfragen mit anderen Werten können dann auch entsprechend schneller durchgeführt werden.
Und noch ein Punkt:
SQL-Injection ist dann vollkommen unmöglich.