Hallo #,
folgender Code checkt, ob bestimmte Felder
in einer Tabelle existieren
(jaja, ich weiss, FIBPlus kann das auch selber, ist eine Portierung)
Delphi-Quellcode:
with Query do
begin
SQL.Clear;
SQL.Add('
Select * From Bestellung Where Id=0');
Open;
// hier ist FOpen schon True
try
Self.FieldExist.FE_bOrderValue
:= FieldExists(
Query, '
OrderValue');
Self.FieldExist.FE_bAllowDoubleOrderNo
:= FieldExists(
Query, '
AllowDoubleOrderNo');
Self.FieldExist.FE_bUnloadingPlace
:= FieldExists(
Query, '
UnloadingPlace')
and
FieldExists(
Query, '
UnlPlace_PackSlip');
Self.FieldExist.FE_bReturnAddress
:= FieldExists(
Query, '
ReturnAddress');
finally
Close;
// hier bleibt FOpen True
end;
end;
Die
Query ist eine Ableitung von TpFIBQuery
Delphi-Quellcode:
type
TBaseQuery = class(TpFIBQuery)
public
procedure Close; reintroduce;
end;
procedure TBaseQuery.Close;
begin
inherited Close;
// hier ist FOpen False
// OnClosed event
end;
Das überschriebene Close brauche ich für ein OnClosed event
Das
Open ruft direkt
ExecQuery auf.
Was mache ich denn falsch.
Der Debugger zeigt mir alles brav an.
*ratlos*
Heiko