![]() |
SQL Like Abfrage aufbauen ?
Hi,
Ich versuche gerade für eine Suchmaske eine dazugehörige SQL-Abfrage zusammen zubasteln. In einem mir ausgehändigten SQL-Buch (Learning Oracle PL/SQL) hab ich folgendes Beispiel gefunden:
SQL-Code:
Jetzt setz ich das bisher in einem String zusammen und das '-Zeichen hat dort ja schon eine Bedeutung.
WHERE UPPER(author) LIKE 'SHAKESPEARE%';
Wie geh ich jetzt am Besten vor? Irgendwie das ' escapen oder gibt es was eleganteres. Mein noch unfertiger Delphicode sieht bisher so aus:
Delphi-Quellcode:
tmpSqlString := '';
tmpSqlString := 'select select MiaID, Name, Vorname, Plz, Ort'; tmpSqlString := tmpSqlString + ' from DM_ADMIN.Mitarbeiter '; tmpSqlString := tmpSqlString + ' where NAME Like %:P_inp_name'; tmpSqlString := tmpSqlString + ' where VORNAME Like %:P_inp_vorname'; tmpSqlString := tmpSqlString + ' where STRASSE Like %:P_inp_strasse'; tmpSqlString := tmpSqlString + ' where BEZEICHNUNG = :P_cmb_landMitarbeiter'; tmpQry := TQuery.create(nil); tmpQry.parambyname('P_inp_name').asString := inp_name.text; tmpQry.parambyname('P_inp_vorname').asString := inp_vorname.text; tmpQry.parambyname('P_inp_strasse').asString := inp_strasse.text; tmpQry.parambyname('P_cmb_landMitarbeiter').asString := cmb_landMitarbeiter.text; tmpQry.destroy; -----------------------//edit//----------------- Hat sich erledigt. Ich machs einfach so:
Delphi-Quellcode:
-----------------------//edit//-----------------
tmpSqlString := '';
tmpSqlString := 'select select MiaID, Name, Vorname, Plz, Ort'; tmpSqlString := tmpSqlString + ' from DM_ADMIN.Mitarbeiter '; tmpSqlString := tmpSqlString + ' where UPPER(NAME) Like :P_inp_name'; tmpSqlString := tmpSqlString + ' and UPPER(VORNAME) Like :P_inp_vorname'; tmpSqlString := tmpSqlString + ' and UPPER(STRASSE) Like :P_inp_strasse'; tmpSqlString := tmpSqlString + ' and UPPER(BEZEICHNUNG) = :P_cmb_landMitarbeiter'; tmpQry := TQuery.create(nil); tmpQry.parambyname('P_inp_name').asString := ANSIuppercase(Trim(inp_name.text))+'%'; tmpQry.parambyname('P_inp_vorname').asString := ANSIuppercase(Trim(inp_vorname.text))+'%'; tmpQry.parambyname('P_inp_strasse').asString := ANSIuppercase(Trim(inp_strasse.text))+'%'; tmpQry.parambyname('P_cmb_landMitarbeiter').asString := cmb_landMitarbeiter.text; tmpQry.destroy; |
Re: SQL Like Abfrage aufbauen ?
so etwa?
Delphi-Quellcode:
Gruß
tmpQry := TQuery.create(nil);
tmpQry.SQL.Add('SELECT MiaID '); tmpQry.SQL.Add(' , Name '); tmpQry.SQL.Add(' , Vorname '); tmpQry.SQL.Add(' , Plz '); tmpQry.SQL.Add(' , Ort '); tmpQry.SQL.Add(' FROM DM_ADMIN.Mitarbeiter '); tmpQry.SQL.Add(' WHERE Name LIKE :PName '); tmpQry.SQL.Add(' AND Vorname LIKE :PVorname '); tmpQry.SQL.Add(' AND Strasse LIKE :PStrasse '); tmpQry.SQL.Add(' AND Bezeichnung LIKE :PBezeichnung'); tmpQry.parambyname('PName ').asString := inp_name .text+'%'; tmpQry.parambyname('PVorname ').asString := inp_vorname .text+'%'; tmpQry.parambyname('PStrasse ').asString := inp_strasse .text+'%'; tmpQry.parambyname('PBezeichnung').asString := cmb_landMitarbeiter.text+'%'; ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz