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//-----------------