Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Variablen als Parameter übergeben? (https://www.delphipraxis.net/64086-variablen-als-parameter-uebergeben.html)

Loki77 27. Feb 2006 09:49

Datenbank: Paradox • Version: 7 • Zugriff über: Query

Variablen als Parameter übergeben?
 
Morgen!
Wie kann ich den Inhalt von zwei Edit-komponenten als Parameter in
eine Query-Komponente übergeben?
Mal allgemein:
Delphi-Quellcode:
procedure TfrmMain.AddClick(Sender: TObject);
begin
qryMain.Close;
qryMain.SQL.Clear;
// Hier die Query Anweisung:
qryMain.SQL.Add('UPDATE Tabelle SET Feld1 =??? , Feld2 =??? );
//                                 (parameter0) (parameter1)    

qryMain.Params[0].DataType := ftInteger;
qryMain.Params[1].DataType := ftInteger;
qryMain.Params[0].AsInteger := StrToInt(edtFeld1.Text);
qryMain.Params[1].AsInteger := StrToInt(edtFeld2.Text);
qryMain.ExecSQL;
qryMain.Close;
qryMain.SQL.Clear;
qryMain.SQL.Add('SELECT Feld1, Feld2 FROM Tabelle;');
qryMain.Open;
DBGrid1.Refresh;
end;
Brauche nur die Syntax für die Query-Anweisung.
Frage: Muss die Parameter-Definition VOR der Anweisung stehen?
Gruss + Danke, Loki.

mkinzler 27. Feb 2006 09:58

Re: Variablen als Parameter übergeben?
 
Delphi-Quellcode:
qryMain.SQL.Add('UPDATE Tabelle SET Feld1 =:feld1, Feld2 = :feld2' );
qryMain.ParamByName('feld1').Value bzw as<Typ> (asInteger)

Zitat:

Frage: Muss die Parameter-Definition VOR der Anweisung stehen?
danach, sonst findert er sie nicht!

Loki77 27. Feb 2006 10:11

Re: Variablen als Parameter übergeben?
 
Danke, wird so gehen.
Aber wie funktioniert die übergabe mit Parameter By Index,
nicht ParamByName?
Loki.

mkinzler 27. Feb 2006 10:18

Re: Variablen als Parameter übergeben?
 
Delphi-Quellcode:
qryMain.Params.Items[0].Value; bzw as<Typ>;
.
Delphi-Quellcode:
die verkürzte Form qryMain.Params[0].Value
müsste aber auch gehen.

Loki77 27. Feb 2006 10:21

Re: Variablen als Parameter übergeben?
 
Ja, das war mir klar, aber wie sieht das in der Query-Anweisung aus?
(muss mich mal klarer ausdrücken....)
Gruss Loki.

mkinzler 27. Feb 2006 10:22

Re: Variablen als Parameter übergeben?
 
Genauso.

Loki77 27. Feb 2006 10:30

Re: Variablen als Parameter übergeben?
 
Also
Delphi-Quellcode:
qryMain.SQL.Add('UPDATE Tabelle SET Feld1, Feld2' );
qryMain.Params[0].DataType := ftInteger;
qryMain.Params[1].DataType := ftInteger;
qryMain.Params[0].AsInteger := StrToInt(edtFeld1.Text);
qryMain.Params[1].AsInteger := StrToInt(edtFeld2.Text);
???

Loki

mkinzler 27. Feb 2006 10:34

Re: Variablen als Parameter übergeben?
 
Nein so
Delphi-Quellcode:
qryMain.SQL.Add('UPDATE Tabelle SET Feld1= :feld1, Feld2 = :feld2' );
qryMain.Params[0].DataType := ftInteger; //Nicht unbedingt notwendig
qryMain.Params[1].DataType := ftInteger; //Nicht unbedingt notwendig
qryMain.Params[0].asString := edtFeld1.Text;
qryMain.Params[1].asString := edtFeld2.Text;
Wie du die Parameter benennst ist in diesem Fall egal könnte auch :f1, :a oder :djajsdhadajks sein.

Loki77 27. Feb 2006 10:38

Re: Variablen als Parameter übergeben?
 
OK, das war das Problem.Warum dann überhaupt Namen.....
Klappt aber, DANKE!!!
Gruss Loki.

SirThornberry 27. Feb 2006 10:40

Re: Variablen als Parameter übergeben?
 
und wie würde das dann aussehen wenn ich in 2 felder den gleichen wert haben will bzw. nicht in der Reihenfolge der params? also so:
SQL-Code:
qryMain.SQL.Add('UPDATE Tabelle SET Feld1= :feld2, Feld2 = :feld1' );
qryMain.Params[0].DataType := ftInteger; //Nicht unbedingt notwendig
qryMain.Params[1].DataType := ftInteger; //Nicht unbedingt notwendig
qryMain.Params[0].asString := edtFeld1.Text;
qryMain.Params[1].asString := edtFeld2.Text;
bzw so:
SQL-Code:
qryMain.SQL.Add('UPDATE Tabelle SET Feld1= :feld1, Feld2 = :feld2, Feld3 = :feld1' );
qryMain.Params[0].DataType := ftInteger; //Nicht unbedingt notwendig
qryMain.Params[1].DataType := ftInteger; //Nicht unbedingt notwendig
qryMain.Params[0].asString := edtFeld1.Text;
qryMain.Params[1].asString := edtFeld2.Text;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Seite 1 von 2  1 2      

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