Delphi-PRAXiS
Seite 3 von 8     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TQuery function umstellen auf FibPlus (https://www.delphipraxis.net/137613-tquery-function-umstellen-auf-fibplus.html)

Eppos 31. Jul 2009 13:04

Re: TQuery function umstellen auf FibPlus
 
jetzt müsste ich natürlich noch wissen, wie meine execquery funktion aussieht.
Weil "dataset.execsql" gibt es nicht?!?

hoika 31. Jul 2009 13:10

Re: TQuery function umstellen auf FibPlus
 
Hallo,

waren wir nicht bei TfXXQuery (habs gerade nicht im Kopf).
Wieso jetzt DataSet ?

Egal: Weekend !!!


Heiko

Eppos 31. Jul 2009 13:13

Re: TQuery function umstellen auf FibPlus
 
das Problem war nur, das FibQuery kein Locate konnte...
Aber ich probiere es mal mit FibQuery...

alex517 31. Jul 2009 14:04

Re: TQuery function umstellen auf FibPlus
 
Nimm bitte FibDataSet und lass das FibQuery erstmal beiseite.
Im FibDataSet findest du das .Open, .Active, .Locate(), usw.


alex

exilant 31. Jul 2009 15:38

Re: TQuery function umstellen auf FibPlus
 
Zitat:

Zitat von Eppos
das Problem war nur, das FibQuery kein Locate konnte...
Aber ich probiere es mal mit FibQuery...

Wenn Du überwiegend mit Datengebundenen Komponenten (igitt) arbeiten willst dann benutze Fibdataset.
Ansonsten Fibquery.

Ich persönlich nutze seit Ewigkeiten keine datengebundenen Komponenten mehr.
Ich habe es mir abgewöhnt mit TDataset und seinen Nachfolgern zu arbeiten. Daher verwende ich fibdataset überhaupt nicht.
Die ganzen TDbXXXXX Komponenten verleiten leicht dazu, Geschäftslogik und UI über Gebühr zu mixen.
Das Problem von langlaufenden Transaktionen hat man dann nebenbei ebenfalls beseitigt.
Benötigte Datenstrukturen baue ich mir im Speicher auf. Es gibt so schöne Listen, Collections etc.....
Diese dann mit den UI Controls zu bearbeiten ist 1. Pfeilschnell und 2. hat man die volle Kontrolle.

Eppos 1. Aug 2009 08:36

Re: TQuery function umstellen auf FibPlus
 
ich habe jetzt eine Funktion geschrieben die wie folgt aussieht

Delphi-Quellcode:
function ExecFibQuery( Sql : String; Database : TFibDatabase ) : boolean;
var myQuery : TpFIBQuery;
begin
  myQuery := TpFIBQuery.Create( Application );
  Result := True;
  try
    myQuery.Database := Database;
    myQuery.SQL.Text := Sql;
    myQuery.ExecQuery;
    myQuery.Transaction.Commit;
    Result := True;
  except
    myQuery.Free;
    Result := False;
  end;
  myQuery.Free;
end;
Das Problem ist nur, wenn ich diese Funktion ausführe, werden
alle OpenQuerys geschlossen und zwar dann, wenn "myQuery.Transaction.Commit"
ausgeführt wird. Weiss jemand warum?

mkinzler 1. Aug 2009 08:46

Re: TQuery function umstellen auf FibPlus
 
Ja du hängst dich an eine laufende Transkation an und schliesst diese ab! das kann sehr negative Folgen haben. Führe deine Abfrage in einer eigenen Transaktion aus.

Eppos 1. Aug 2009 08:49

Re: TQuery function umstellen auf FibPlus
 
da ich aber meine Funktion in einer Unit ausgelagert habe, müsste ich also immer eine Transaction mit geben?

mkinzler 1. Aug 2009 08:50

Re: TQuery function umstellen auf FibPlus
 
Oder wie den Query dynamisch erstellen

Eppos 1. Aug 2009 09:29

Re: TQuery function umstellen auf FibPlus
 
das klappt jetzt mit der Transaction.
Was nur noch nicht funktioniert, ist der RecordCount,
der liefert immer 1 zurück und ich weiss nicht warum?!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 Uhr.
Seite 3 von 8     123 45     Letzte »    

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