Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: MSSQL Datenbank, Select geht nicht

  Alt 28. Jun 2018, 07:32
Hast ja Recht.
Also dann zur Vollständigkeit. So sollte das eigentlich ein besseres SQL-Statement sein:
Delphi-Quellcode:
procedure TfrmGettingStarted.Button1Click(Sender: TObject);
 begin
  if dbMain.Connected then
  begin
    qryproducts.FetchOptions.AutoClose := False;
    qryproducts.SQL.Clear;
    qryproducts.SQL.Add('SELECT *');
    qryproducts.SQL.Add('FROM kd_data') ;
    qryproducts.SQL.Add(' WHERE kd_data.kd_vname like :Vorname');
    qryproducts.SQL.ParamByName('Vorname').AsString := Edit1.Text;
    qryproducts.Open; // [Orders] table rows are accessable here
   end;
 end;
Vorteile:
1. Gefahr von Code-Injection verringert
2. Firlefanz mit QuotedStr oder wildem Anführungszeichengewedel entfällt
3. Bessere Lesbarkeit (siehe dazu Punkt 2)
4. Das Prepare funktioniert besser
Nachteile:
In sehr seltenen Fällen muss man den Type des Parameters noch definieren, weil die automatische Umsetzung des Parameters in den richtigen Typ nicht funktioniert. Das passiert nur sehr selten und wirkt sich selbst dann nicht immer aus. Hatte ich in den letzten 5 Jahren nur einmal.

Außerdem gleich mal das Exit rausgeschmissen.
Peter
  Mit Zitat antworten Zitat