Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: Fehlerhafte Abfrage

  Alt 6. Jul 2011, 20:22
Die Parameter sind eine Features des DBMS.

Beispiel Insert von mehreren Datensätzen

1. ohne Parameter:

SQL-Code:
insert into person ( name, vorname) values ( 'Puff', 'Michael');
insert into person ( name, vorname) Values ( 'Kinzler', 'Markus');
Es wird zuerst die 1. Abfrage an das DBMS gesendet, diese wird geparst und eine Abfargeplan gebildet.
Entsprechend für jeden weiteren Insert.

2. mit Parameter:

insert into person ( name, vorname) values ( :name, :vorname); Es wird die Abfrage mit Platzhalter und nicht mit konkreten Werten an das DBMS gesendet. Dieses parst sie, bildet einen Plan und erzeugt die Parameter.

Beim eigentlichen Insert werden dann nur die Werte für die Parameter an das DBMS gesendet und die Abfrage mit diesen werten ausgeführt.
Das ist deutlich schneller, da die Abfrage nur einmal geparst und der Plan nur einmal ermittlet werden muss.

Ausserdem wird so wie erwähnt das Risiko von sql injection verringert.
Markus Kinzler
  Mit Zitat antworten Zitat