Einzelnen Beitrag anzeigen

Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#16

Re: SQL: select * from ... = "integer-wert"

  Alt 3. Nov 2003, 14:00
Hallo, ich klink mich auch wieder ein
Generell würde ich jedem abraten eine SQL-Anweisung ohne Parameter zu verwenden. Bei Access Datenbanken mag das ja keine Auswirkungen haben, aber hat man einen SQL Server dann muss eine Anweisung dieser Artadoquery1.sql.Add ('select * from tabelle1 where tordiff = ' + ed_such.text) vom Server jedesmal beim Ausführen neu geparst, und der jeweilige Ausfürungsplan neu erstellt werden.
Hat man hier eine Multiuserumgebung (z.Bsp. einen Internetserver) wird diese Datenbank früher oder später den Geist aufgeben.
Werden stattdessen Parameter verwendet kann sich der Server auf die zuletzt geparste Anweisung verlassen und braucht nur noch die Parameterwerte auszutauschen.
Bsp.:
Delphi-Quellcode:
procedure Tfrm_spiele.bt_suchClick(Sender: TObject);
var such :integer;
begin
adoquery1.Close;
adoquery1.sql.Clear;

such := strtoint(ed_such.text);

adoquery1.sql.Text := 'select * from tabelle1 where TorDiff = :such';
adoquery1.Parameters.ParamByName('such').Value := such;

adoquery1.Open;

end;
Auch wenn man keinen Datenbankserver zur Verfügung hat würde ich trotzdem vorschlagen gleich auf diese Technik zu setzten, weil die Anwendung auch besser skalierbar wird.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat