Hallo,
habe hier ein seltsames Verhalten mit einem Code, der bis zum Update von XE2 von Update 3 auf 4 keine Probleme verursachte:
Gegeben:
TForm mit TIBCQuery (A) > TDataSource > TSMDBGrid + 3x TDBLookupCombobox die über 2 weitere TIBCQuery/TDataSource mit Lookup-Daten versorgt werden.
Das Öffnen der
Query A erfolgt in einem EnableControls/DisableControls-Block.
Wird das Form zum erstenmal instanziert und
Query A geöffnet, so funktoniert alles unter XE2 Upd 3 als auch Upd 4.
Aktualisiere ich aber die Daten der
Query A über ein Close/Open mit EnableControls/DisableControls-Block, so bekomme ich eine
AV in
Vcl.DBCtrls > TDBLookupControl.DataLinkRecordChanged gemeldet.
Wenn ich diesen Teil debugge, so scheint dort FMasterfield der TDBLookupControl Basis-Klasse undefiniert zu sein.
Es scheint das die 2 minimalen Änderungen in der
VCL Upd. 3 nach Upd. 4 in Data.DB bzw.
Vcl.DBCtrls dazu führen, dass TDBLookupControl.UpdateDataFields nicht mehr ausgeführt wird und die FMasterfields daher nach einem wiederholten Close/Open, sofern zuvor ein DisableControls auf der
Query aufgerufen wurde, undefiniert sind.
Als WorkARound rufe ich nun nach dem Open TDBLookupControl.UpdateDataFields von Hand auf, was die Felder definiert und den Fehler unterdrückt.
Kann jemand das Problem bestätigen?
Kennt jemand evtl. eine alternative Lösung (ausser auf das Enable/Disable zu verzichten)?
Gruß,
Michael
BTW: IBDAC 4.6.12, XE2 Upd 4 Hotfix 1 HelpPack 6