Einzelnen Beitrag anzeigen

Delphimagnet

Registriert seit: 16. Sep 2004
16 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL Like Abfrage aufbauen ?

  Alt 27. Sep 2004, 09:13
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:

WHERE UPPER(author) LIKE 'SHAKESPEARE%'; Jetzt setz ich das bisher in einem String zusammen und das '-Zeichen hat dort ja schon eine Bedeutung.
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:
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;
-----------------------//edit//-----------------
  Mit Zitat antworten Zitat