Auf einem THauptForm liegt eine (mehrere) Datenkomponente (Zeos).
Diese ist im Entwurf und bei Programmstart inaktiv.
Aktiviert (active:=true) wird erst in der OnCreate-Procedure gesetzt.
Code: Alles auswählen
procedure THaupt.FormCreate(Sender: TObject);
begin
ZQueryEinnahmen.Active := true;
ZQueryAusgaben.Active := true;
ZQueryKb.Active:=true;
ZQueryKb.Open;
end;
Das funktioniert in den 1.6x Versionen alles klaglos.
Mit 1.8 bricht die Programmausführung gleich bein Start ab:
..EDatabaseError... inactive dataset...
Code: Alles auswählen
procedure THaupt.DateEdit1Change(Sender: TObject);
begin
.....
ZQueryKb.active:=true; //jetzt eingefügt, bringt nichts
//Kassenbuch neu lesen
with ZQueryKb do
begin
Close;
SQL.Text:= 'Select * from Kassenbuch '
+'where Datum = (:Arbeitsdatum) order by ID' ;
ParamByName('Arbeitsdatum').AsDate := Arbeitsdatum;
ExecSQL;
open;
Last; //hier Programmabbruch weil Dataset noch inaktiv ist
end;
.....
end;
Diese Procedure (und auch andere) werden jetzt vor der FormCreate ausgeführt
also bei inaktiver Dataset, der Fehler also formal logisch.
Ist das so gewollt?