AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Like Abfrage aufbauen ?
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Like Abfrage aufbauen ?

Ein Thema von Delphimagnet · begonnen am 27. Sep 2004 · letzter Beitrag vom 27. Sep 2004
Antwort Antwort
Delphimagnet

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

SQL Like Abfrage aufbauen ?

  Alt 27. Sep 2004, 10: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
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: SQL Like Abfrage aufbauen ?

  Alt 27. Sep 2004, 10:24
so etwa?
Delphi-Quellcode:
  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+'%';
  ...
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 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