|
Um eine Variable an eine Query übergeben zu können, muß zunächst eine Query geschrieben werden, die eine Variable verwendet.
Als Beispiel sei die nachfolgende Query angeführt:
Select Test."FName", Test."Salary Of Employee"
From Test
Where Test."Salary of Employee" > :val
Hierbei ist darauf zu achten, daß dem "Salary of Employee" der Datenbankname "Test." vorangestellt wird. Ansonsten resultiert der Fehler "Capability Not Supported".
Im gezeigten Beispiel ist der Name der Variablen "val".
Als nächstes wird das Parameter-Property der TQuery-Komponente bearbeitet und "val" auf den gewünschten Wert gesetzt. Da es sich im Beispiel um einen Integer-Wert handelt, muß dieser entsprechend konvertiert werden. Dazu ist ein Code einzufügen, wenn die Angabe über ein TEdit-Feld eingegeben werden soll:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->Close();
Query1->ParamByName(„val“).AsInteger = StrToInt(Edit1->Text);
Query1->Open;
}
Zur Vorsicht sollte dieser Code in einen TRY-EXCEPT-Block gekapselt werden, daß die Konvertierung des Textes in einen Integerwert eine Exception auslösen kann.
Analog kann ein LIKE in eine Query eingebettet werden. Der entsprechende SQL-Code soll beispielhaft so aussehen:
SELECT * FROM CUSTOMER
WHERE Company LIKE :CompanyName
Der Handler für die Eingabe des Wertes könnte dann folgendes Ausehen haben:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->Close;
Query1->ParamByName('CompanyName').AsString = Edit1.Text + '%';
Query1->Open;
}
|