Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Query-Abfrage (https://www.delphipraxis.net/13089-query-abfrage.html)

dinu_ch 10. Dez 2003 18:21


Query-Abfrage
 
Ich habe eine Tabelle mit 3 Spalten (Stichwort1-Stichwort3).

Wie kann ich mit einem Query alle 3 Spalten auslesen ? Ich habe ein Edit-Feld, wo der Begriff eingegeben werden kann-mit einer Spalte mache ich das so :

Delphi-Quellcode:
procedure Tanzeigen.BtnTitelClick(Sender: TObject);

begin
    query1.Filter:='Titel='+QuotedStr(MaskEditTitel.Text);
    query1.Filtered:=true;
    DBGrid1.visible:=true;
    MaskEditTitel.Text:='';
    MaskEditTitel.SetFocus;
end;
In SQL habe ich das mit 3 Spalten so gelöst :

Delphi-Quellcode:
SQL_SelectString:= ('select titel as Titel,name as Name,vorname as Vorname,verzeichnis as Verzeichnis from dokumente.db where stichwort1 like"'+estichwort+'" or stichwort2 like"'+estichwort+'" or stichwort3 like"'+estichwort+'"');                  
     Query1.Active:= false;
     Query1.sql.clear;
     Query1.sql.add(SQL_SelectString);
     Query1.Active:= true;
     DBGrid1.visible:=true;
     MaskEditStichwort.Text:='';
     MaskEditStichwort.SetFocus;
Da ich nun aber Daten direkt editiere in einem separatem Form kann ich das mit SQL so nicht mehr abfragen. Wie muss der Query-Filter heissen ?

Wer kann mir helfen ? Eben, ein Suchtext, alle 3 Spalten abdecken.

[edit=r_kerber]Delphi-Tags gesetzt. Mfg, r_kerber[/edit]

Leuselator 10. Dez 2003 18:24

Re: Query-Abfrage
 
Hi Dinu, welche Datenbank benutzt Du?

dinu_ch 10. Dez 2003 18:26

Re: Query-Abfrage
 
ich habe die paradox von delphi genommen

Robert_G 10. Dez 2003 20:20

Re: Query-Abfrage
 
Also dein Code scheint zu funktionieren, aber ich habe keine Ahnung von ADOQuery/BDEQuery (oder wie die heißen).

Versuchs aber trotzdem mal so.
Code, der auf eine Zeile gequetscht wurde(vor allem ein SQL-String!), ist meistens ziemlich unleserlich.

Die Spalten-aliases brauchst du nicht - sind doch exakt die Spaltennamen.

Delphi-Quellcode:
  SQL_SelectString :=
    'SELECT Titel,' + #13#10 +
    '      NAME,' + #13#10 +
    '      Vorname,' + #13#10 +
    '      Verzeichnis' + #13#10 +
    'FROM  dokumente.db' + #13#10 +
    '' + #13#10 +
    'WHERE Titel = :eTitel AND' + #13#10 +
    '      (Stichwort1 LIKE :eStichWort OR' + #13#10 +
    '       Stichwort2 LIKE :eStichWort OR' + #13#10 +
    '       Stichwort3 LIKE :eStichWort )';

  Query1.Active := False;
  Query1.Prepare;
  Query1.ParamByName('eTitel').asString     := MaskEditTitel.Text;
  Query1.ParamByName('eStichWort').asString := MaskEditStichwort.Text;
  Query1.SQL.Text := SQL_SelectString;
  Query1.Active := True;
Ändern & Abfragen gleichzeitig (mit 2 Connections) sollte eigentlich kein Problem darstellen.

Beschreibe bitte dein Problem mal genauer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 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