![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus
FIBPlus, TbFIBQuery, Close schliesst die
Hallo #,
folgender Code checkt, ob bestimmte Felder in einer Tabelle existieren (jaja, ich weiss, FIBPlus kann das auch selber, ist eine Portierung)
Delphi-Quellcode:
Die Query ist eine Ableitung von TpFIBQuerywith 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;
Delphi-Quellcode:
Das überschriebene Close brauche ich für ein OnClosed event
type
TBaseQuery = class(TpFIBQuery) public procedure Close; reintroduce; end; procedure TBaseQuery.Close; begin inherited Close; // hier ist FOpen False // OnClosed event end; Das Open ruft direkt ExecQuery auf. Was mache ich denn falsch. Der Debugger zeigt mir alles brav an. *ratlos* Heiko |
Re: FIBPlus, TbFIBQuery, Close schliesst die
Hallo,
kann es am Open liegen. Das habe ich einfach neu reingepackt, weil unter der BDE das Open ne Query öffnet. Wie kann man denn FIBPlus als BDE-Ersatz definieren, wenn Open eine völlig andere Bedeutung wie in der BDE hat. Hätte man das nicht IsOpen nennen können ??? *schimpf* #Update* OK, im DevGuide steht, man soll TpFIBDataSet nehmen, aber dann geht die Fummel mit SelectSQL / UpdatedSQL los ;( Hat hier schon mal jemand in endlicher Zeit eine BDE-App portiert, ohne ständig im Code rumzufummeln ?. Heiko |
Re: FIBPlus, TbFIBQuery, Close schliesst die
Hallo Hoika,
ja, laut Hilfe Datei ist Open bei FIBplus ein readonly Property, dass die Query activ ist (mit ExecQuery). Von daher hast Du mit Deinem Vorschlag, dass das eher IsOpen heißen sollte schon recht. Und noch ein bisschen wilder ist, das es bei den Transactions active und bei der Datenbank connected ist... BTW: Ich fand beim Umstieg sehr anstregend, dass es keine Table Komponente gibt (dem entspricht ja bei FIBplus das Dataset). Ansonsten bin ich aber sehr zufrieden damit. Gruß, Artur |
Re: FIBPlus, TbFIBQuery, Close schliesst die
Hallo,
ich leite jetzt ne eigene Komponente vom TpFIBDataSet ab und schreibe die fehlenden Sachen dazu. Wenigstens ist das Open ein richtiges Open ;) Ist ja vom TDataSet abgeleitet. Heiko |
Re: FIBPlus, TbFIBQuery, Close schliesst die
Es ist schon komisch, dass die Komponente TpFIBQuery, welche eigentlich nur aus BDE-Kompatibilitätsgründen vorhanden ist, keine große Kompatibilität zur der aufweist.
|
Re: FIBPlus, TbFIBQuery, Close schliesst die
Bist Du sicher, das die FIBQuery deshalb drin ist? Ich denke, die ist eher deshalb drin, um nicht alles mit dem "fetten" FIBDataset erledigen zu müssen.
Ciao, Artur |
Re: FIBPlus, TbFIBQuery, Close schliesst die
Bei vielen anderen Komponentensammlungen ist das so, könnte aber bei FIBPlus anders sein.
|
Re: FIBPlus, TbFIBQuery, Close schliesst die
Zitat:
siehe ![]() Zitat:
solltes du dich in Bezug auf FibPlus nicht so weit aus dem Fenster lehnen :wink: alex |
Re: FIBPlus, TbFIBQuery, Close schliesst die
Hast ja Recht, wenn man keine Ahnung hat, sollte man seine Schnautze halten :oops:
|
uery ist.
Hallo,
Zitat:
Das TpFIPQuery ist in der Tat für I/U/D, sobald ich aber ein Get mache, muss ich manuell an den (BDE)-Code ran. Ich habe sogar per reintroduce das Open nachbauen wollen, -> Plautz ;) Aber, wenn ich
Delphi-Quellcode:
mache, kann ich doch erwarten, dass das Query.Open False ist,
Query.SQL.Text:= 'Select bla'
Query.ExecQuery; // = open Query.Close; ist es aber nicht ;( Egal. Ich habe jetzt das TpFIBDataSet, stelle nun aber leider fest, dass es langsamer als eine BDE-Query ist. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz