Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Anfrage mit 2 Parametern (https://www.delphipraxis.net/28490-sql-anfrage-mit-2-parametern.html)

Luciano 25. Aug 2004 12:42


SQL-Anfrage mit 2 Parametern
 
Hi...

Das Topic habe ich vielleicht ein wenig falsch formuliert aber ich wußte nicht wie ich das anders hätte schreiben sollen...

Delphi-Quellcode:
if Checkbox1.Checked then Parameter1 := 'Spaltenname1'; //Parameter1 Variable vom Typ String
if Checkbox2.Checked then Parameter1 := 'Spaltenname2';
if Checkbox3.Checked then Parameter1 := 'Spaltenname3';

with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.ADD('SELECT * FROM TABELLE '+
            'WHERE '+
            ':v_PARAMETER1 LIKE :v_PARAMETER2 ');
    Prepared := true;
    with Parameters do
      begin
        ParamByName('v_PARAMETER1').Value := Parameter1; //eine Spalte aus der Tabelle
        ParamByName('v_PARAMETER2').Value := Edit1.Text +'%';
      end;
    try
      Open;
    except
      ShowMessage('Query Konnte nicht geöffnet werden!');
    end;
  end;
Ich bekomme aber keine Ergebnisse zurück :gruebel: Kann ich einen Spaltennamen überhaupt als Parameter übergeben?

Greets

Hansa 25. Aug 2004 12:46

Re: SQL-Anfrage mit 2 Parametern
 
Ich glaube, du verwechselst Feldnamen mit Feldwerten. Oder was nützt es, innerhalb der Daten irgendwas zu finden, das Ähnlichkeiten mit einem Spaltennamen hat ? :gruebel:

nieurig 25. Aug 2004 12:49

Re: SQL-Anfrage mit 2 Parametern
 
Hallo Mike!

Zitat:

Kann ich einen Spaltennamen überhaupt als Parameter übergeben?
Nein, das geht nicht.
Aber Du kannst beim Aufbau des SQL-Statements den Spaltennamen dynamisch einfügen, etwa so:


Code:
SQL.Clear;
SQL.ADD('SELECT * FROM TABELLE '+
        'WHERE '+ Parameter1 +
        'LIKE :v_PARAMETER2 ');
Das müßte Dein Problem schon beheben.
Niels

Robert_G 25. Aug 2004 12:49

Re: SQL-Anfrage mit 2 Parametern
 
Nein kannst du nicht, das wurde hier aber bestimmt schon 5 mio. mal gefragt.
Warum sollte man das auch wollen? :gruebel: Ein Parameter ist eine Variable.
In Delphi würdest du doch auch nicht sowas schreiben:
Delphi-Quellcode:
var
  Param :string;
  Variable1,Variable2,Variable3 :Integer;
begin
  Variable1 := 1;
  Variable2 := 2;
  if X then
    Param := 'Variable1'
  else
    Param := 'Variable2';

  Variable3 := Param;
end;

Luciano 25. Aug 2004 12:54

Re: SQL-Anfrage mit 2 Parametern
 
SORRY ich habe mal wieder viel zu schnell getippt als nachgedacht.... :wall: :oops:

Habe schon eine Lösunge gefunden wie sie nieurig beschrieben hatte...

Sorry nochmals...

Greets


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