AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FIBPlus, TbFIBQuery, Close schliesst die
Thema durchsuchen
Ansicht
Themen-Optionen

FIBPlus, TbFIBQuery, Close schliesst die

Ein Thema von hoika · begonnen am 10. Aug 2009 · letzter Beitrag vom 12. Aug 2009
Antwort Antwort
Seite 1 von 3  1 23      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 19:34
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus
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
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 19:42
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
Heiko
  Mit Zitat antworten Zitat
Artur

Registriert seit: 31. Dez 2006
Ort: Augsburg
70 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 20:10
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
Artur
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 20:27
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 20:38
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Artur

Registriert seit: 31. Dez 2006
Ort: Augsburg
70 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 20:47
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
Artur
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 20:48
Bei vielen anderen Komponentensammlungen ist das so, könnte aber bei FIBPlus anders sein.
Markus Kinzler
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#8

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 21:46
Zitat von mkinzler:
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.
Die FibQuery hat nichts mit der BDE-Query zu tun und ist schon gar nicht nur Kompatibilitätsgründen vorhanden.

siehe devguide1.pdf
Zitat:
SQL-query execution
An application works with a database by issuing SQL instructions. They are used to get and
modify data\metadata. FIBPlus has a special TpFIBQuery component responsible for SQL
operator execution. This robust, light and powerful component can perform any actions with the
database.
TpFIBQuery is very easy-to-use: just set the TpFIBDatabase component, fill in the SQL
property and call any ExecQuery method (ExecQueryWP, ExecQueryWPS).
NOTE: The tpFIBQuery is not a TDataset descendant, so it does not act in exactly the same
way or exhibit the same methods / properties as you would expect to find in a dataset. For the
TDataset descendant, please refer to the TpFIBDataset.
Ich möchte dir ja nicht zu nahe treten Markus, aber vielleicht
solltes du dich in Bezug auf FibPlus nicht so weit aus dem Fenster lehnen


alex
Alexander
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: FIBPlus, TbFIBQuery, Close schliesst die

  Alt 10. Aug 2009, 21:54
Hast ja Recht, wenn man keine Ahnung hat, sollte man seine Schnautze halten
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#10

uery ist.

  Alt 11. Aug 2009, 13:30
Hallo,

Zitat:
This robust, light and powerful component can perform any actions with the
database.
Ebend nicht, oder anders gesagt, ausser Open.
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:
Query.SQL.Text:= 'Select bla'
Query.ExecQuery; // = open
Query.Close;
mache, kann ich doch erwarten, dass das Query.Open False ist,
ist es aber nicht ;(


Egal.
Ich habe jetzt das TpFIBDataSet, stelle nun aber leider fest,
dass es langsamer als eine BDE-Query ist.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz