Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Datensätze mit einem bestinmmten Wert ausgeben (https://www.delphipraxis.net/56372-sql-datensaetze-mit-einem-bestinmmten-wert-ausgeben.html)

berndberndbernd5b 4. Nov 2005 17:07

Datenbank: Access • Zugriff über: ODBC

SQL Datensätze mit einem bestinmmten Wert ausgeben
 
Hallo!
Ich möchte eine Suche erstellen

Wie kann ich alle Datensätze ausgeben, die einen bestimmten Wert beinhalten, aber in jedem Feld.

Also ich möchte die DB sequenziell durchsuchen.

Wie kann man das realisieren ?

Hansa 4. Nov 2005 17:19

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
mit :
SQL-Code:
where
Rest : steht in jedem Handbuch. :mrgreen:

berndberndbernd5b 4. Nov 2005 18:07

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
hi

klar das ist nicht das Problem.

ich möchte in jedem feld suchen.

also nicht

Select * From Tabelle Where Feld = Variable


Feld soll alle Felder sein. Ist halt wegen der Suche.
Ich habe eine Datenbank mit Kundendaten, wie Ort, Name ....
Der User soll dann z.B. den Namen eintippen können und der Datensatz soll erscheinen, wenn er den ort eingibt aber auch.

verstehst du, das ist mein problem.

kann man das irgendwie mit or oder so machen, Ka

alzaimar 4. Nov 2005 18:14

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
Kann man:
Delphi-Quellcode:
select * from Table where Feld1=:Foo or Feld2=:Foo or Feld3=:Foo

berndberndbernd5b 4. Nov 2005 18:20

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
jo ich versuch das mal

Danke

berndberndbernd5b 5. Nov 2005 09:34

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
jo klappt


so:
select * from Table where Feld1=Foo or Feld2=Foo or Feld3=Foo

Also ohne :, der meinte, dass ich dem Feld einen Typ zuweisen würde ...

Danke auf jedenfall

GuenterS 5. Nov 2005 09:43

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
Der ':' hätte besagt, dass dies ein Parameter ist, den Du im Programm dann über Query.ParamByName('Foo').AsString := 'blabla' hättest befüllen können (bevor du die Query aufmachst).

Sharky 5. Nov 2005 09:43

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
Zitat:

Zitat von berndberndbernd5b
... Also ohne :, der meinte, dass ich dem Feld einen Typ zuweisen würde ...

Hai Du,

mit dem Doppelpunkt wird in dem SQL-Query angezeigt das es sich dabei um einen Parameter handelt. Diesen musst Du nach dem setzen des Delphi-Referenz durchsuchenSQL.Text noch mit Werten füllen Delphi-Referenz durchsuchenParamByName.

Edit: Guenter war schneller

berndberndbernd5b 5. Nov 2005 10:56

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
ich hab anstatt Foo auch einfach die Variable genommen


Kannst du mir das mit den parametern erklären ?

GuenterS 5. Nov 2005 11:03

Re: SQL Datensätze mit einem bestinmmten Wert ausgeben
 
ok, ich mach eine kleine Procedure, als Beispiel...

ausgehend von folgender Tabellenstruktur der Tabelle Kunden

Code:
KundenID | KundenName
---------|-----------
   1     | Huber
   2     | Meier
   3     | Müller

Delphi-Quellcode:
function getKundenName(aKundenID: integer):string;
begin
   Result := '';
   with TQuery.Create(nil) do
   try
      DatabaseName := 'meineDatenbank';
      SQL.Text := 'SELECT KundenName FROM Kunden WHERE KundenID = :KID';
      ParamByName('KID').AsInteger := aKundenID;
      Open;
      if (not IsEmpty) then
         Result := FieldByName('KundenName').AsString;
      Close;
   finally
      Free;
   end;
end;
Natürlich hättest Du hier in diesem Beispiel auch schreiben können
Delphi-Quellcode:
function getKundenName(aKundenID: integer):string;
begin
   Result := '';
   with TQuery.Create(nil) do
   try
      DatabaseName := 'meineDatenbank';
      SQL.Text := Format('SELECT KundenName FROM Kunden WHERE KundenID = %d', [aKundenId]);
      Open;
      if (not IsEmpty) then
         Result := FieldByName('KundenName').AsString;
      Close;
   finally
      Free;
   end;
end;
Hätte hier das gleiche bewirkt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr.
Seite 1 von 2  1 2      

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