Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Select where Feld = Zahlenvariable (https://www.delphipraxis.net/186997-sql-select-where-feld-%3D-zahlenvariable.html)

beanbear6 19. Okt 2015 18:44

Datenbank: dBase • Version: 5 • Zugriff über: Query

SQL Select where Feld = Zahlenvariable
 
Hi zusammen,
ich such eine Möglichkeit, mit dem Select-Befehl (Query) in einer Datenbank nach der Kundennummer zu Filtern. Ich verwende für die Selection von Zeichen den Befehl:

Delphi-Quellcode:
SQL.Add('Select * from Artikel WHERE upper(A_BEZ) LIKE "%'+uppercase(such)+'%"');
Für die Zahlensuche verwende ich

Delphi-Quellcode:
SQL.Add('Select * FROM Artikel WHERE A_NR = 3');
Aber absolut nicht krieg ich das hin, wenn ich die Zahl 3 durch eine Variable ersetze. Das Feld A_NR ist ein nummerisches Feld. Wie kann man das machen?
Vielen Dank für jeden Tip!!
Gruß beanbear

Lemmy 19. Okt 2015 18:52

AW: SQL Select where Feld = Zahlenvariable
 
Hi,


Delphi-Quellcode:
SQL.Add('Select * FROM Artikel WHERE A_NR = :ArtikelNr')
SQL.ParamByName('ArtikelNr').AsInteger := 3;

TKanne 19. Okt 2015 18:53

AW: SQL Select where Feld = Zahlenvariable
 
Hallo,

So sollte es gehen:

SQL.Add('Select * FROM Artikel WHERE A_NR = ' + IntToStr(Variable));

VG
TKanne

Dejan Vu 19. Okt 2015 19:01

AW: SQL Select where Feld = Zahlenvariable
 
@TKanne: Wenn Du das so auch mit Strings machst, dann ist das eine Einladung zu SQL-Injection. Verwende Parameter, wie Lemmy das gezeigt hat.
Zitat:

Zitat von beanbear6 (Beitrag 1319113)
Hi zusammen,
Ich verwende für die Selection von Zeichen den Befehl:
Delphi-Quellcode:
SQL.Add('Select * from Artikel WHERE upper(A_BEZ) LIKE "%'+uppercase(such)+'%"');
...
Gruß beanbear

So, und deinem 'such' verpasse ich jetzt den Text
Delphi-Quellcode:
";DROP TABLE Artikel;--
und schon ist deine Tabelle nicht mehr da. Oder -auch lustig- (je nach RDBMS)
Delphi-Quellcode:
";sp_Shell('Format d:');--
und deine D-Platte ist sauber.

Nie nie niemals nicht ohne Parameter arbeiten!

beanbear6 19. Okt 2015 19:31

AW: SQL Select where Feld = Zahlenvariable
 
Hi an alle,
vieeelen vielen Dank für Eure Hilfe! Nun kann ich weitermachen :-)
Danke Euch!
Gruß Beanbear


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz