The story behind: I have ONE Form ans SEVERAL tables which shall be edited in the same DBGrid etc.
So I have to adjust the queries behind.
There is something which looks problematic at first sight.
And it does not work.
But how to put it correctly?
I want to generate for a dataset SQL queries, which works fine.
The problem occurs: Where and how to set the parameters?
This works as long the user does not ask for the parameters like "Anf" = beginning date
// erzeugt SLQ queries nach den Radioboxen, die der Nutzer ausgewählt hat
procedure TFrame_bearbeiteDB.SQL_Adaptieren(Var dataset_: TIBDataset);
Var s: string;
begin
// für Tabelle tbkalender
If (RadioGroup_bearbeiten.ItemIndex = 0) then begin
s:='select * from tbkalender';
if CheckBox_DatumBegrenzen.Checked then // Auswahl mit Datum
s:=s + ' where (jdatum < :anf) and (jdatum > :ende)'; // Sortierung: AUFsteigen!
if CheckBox_nurEintraege.Checked then begin
if CheckBox_DatumBegrenzen.Checked // Auswahl nur Feiertage
then s:=s + ' and (feiertagsmark = 1)'
else s:=s + ' where feiertagsmark = 1';
end;
s:=s + ' order by jdatum desc'; // die größer- und kleine-Zeichen müssen umgedreht sein!
DataSet_.SelectSQL.Text:=s;
if CheckBox_DatumBegrenzen.Checked then begin
dataset_.ParamByName('anf').AsDateTime:=DateTimePicker_Anfang.Date;
dataset_.ParamByName('ende').AsDateTime:=DateTimePicker_Ende.Date;
end;
end;
....
I call it by
SQL_Adaptieren(IBDataSet_bearbeite);
IBDataSet_bearbeite.Active:=true;
and result in an error-code of
Projekt ....Exception-Klasse »EIBClientError« .... saying:
SQL Param No. 0 (ANF) is uninitialised
In Datei 'FBMessages.pas' in Zeile 410
And yes, the same without generating ModifySQL in a method works fine.