![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: BDE
TQuery function umstellen auf FibPlus
Hallo zusammen,
ich habe nun vor, ein paar Tests zu machen, mit FibPlus. Da ich bisher noch mit der BDE arbeite und den Delphi DB Std. Komponenten. Mich würde Interessieren, ob man Parallel mit FibPlus und den Delphi Std. Komponenten arbeiten kann, also einmal Zugriff über TDatabase und einmal über FibPlus?! Ich habe auch zwei Funktionen, und mich würde interessieren, wie das in FibPlus aussieht.
Delphi-Quellcode:
// Query öffnen
function GetOpenQuery( Sql : String ) : TQuery; var myQuery : TQuery; begin myQuery := TQuery.Create( Application ); Result := myQuery; try myQuery.DatabaseName := 'Handel'; myQuery.sql.Text := Sql; myQuery.Active := True; Result := myQuery; except myQuery.Free; end; end;
Delphi-Quellcode:
// ExecQuery - Update/Insert/Delete
function ExecQuery( Sql : String ) : boolean; var myQuery : TQuery; begin Result := false; myQuery := TQuery.Create( Application ); try myQuery.DatabaseName := 'Handel'; myQuery.sql.Text := Sql; myQuery.ExecSQL; Result := true; except SLF(Sql); end; myQuery.Free; end; Vielen Dank Eppos |
Re: TQuery function umstellen auf FibPlus
Hallo,
ich will auch die BDE ersetzen ... ;) Zitat:
Du musst nur aufpassen, dass du nicht die gleiche Tabelle mit BDE und FIBPlus zur gleichen Zeit bearbeitest (Transaktionskonflikt). Nehmen wir mal an, TFBQuery heisst das Teil in FIBPlus.
Delphi-Quellcode:
function GetOpenQuery( Sql : String ) : TFBQuery;
var myQuery : TFBQuery; begin myQuery := TFBQuery.Create( Application ); Result := myQuery; try // myQuery.DatabaseName := 'Handel'; myQuery.Connection myQuery.Transaction // jaja, es gibt 2 davon, für Read und Write myQuery.sql.Text := Sql; myQuery.Active := True; Result := myQuery; except myQuery.Free; Result:= NIL; // das sollte hier noch dirnstehen end; end; Heiko |
Re: TQuery function umstellen auf FibPlus
das Problem ist, das es kein "active" gibt und erhlich gesagt weiss ich nicht was sonst verwendet werden soll...?!?
|
Re: TQuery function umstellen auf FibPlus
Hallo Eppos,
Das ist ein Beispiel um die Beispiel Datenbank von Firebird auf einem DBGrid anzuzeigen, die Dateinamen und der Path muss noch angepasst werden.
Delphi-Quellcode:
end.
unit ufrmFIBPlusdynmischDemo;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, FIBDataSet, pFIBDataSet, FIBDatabase, pFIBDatabase, Grids, DBGrids, StdCtrls, ExtCtrls, FIBQuery, pFIBQuery, DBCtrls, pFIBProps, uXLSExcelDateiClass; type TfrmFIBPlusDemo = class(TForm) DataSource1: TDataSource; DBNavigator1: TDBNavigator; Button1: TButton; DBGrid1: TDBGrid; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } pFIBDataBase1: TpFIBDataBase; pFIBDataSet1: TpFIBDataSet; pFIBTransaction1: TpFIBTransaction; end; var frmFIBPlusDemo: TfrmFIBPlusDemo; implementation {$R *.dfm} procedure TfrmFIBPlusDemo.Button1Click(Sender: TObject); var XLS: TXLS_DateiClass; begin pFIBDataSet1.Close; pFIBDataSet1.SelectSQL.Text:= Memo1.Text; pFIBDataSet1.GenerateSQLs; pFIBDataSet1.Open; end; procedure TfrmFIBPlusDemo.FormCreate(Sender: TObject); begin pFIBDataBase1:= TpFIBDataBase.Create(self); pFIBTransaction1:= TpFIBTransaction.Create(self); pFIBDataSet1:= TpFIBDataSet.Create(self); pFIBDataBase1.Name:= 'pFIBDataBase1'; pFIBDataBase1.ConnectParams.UserName:= 'SYSDBA'; pFIBDataBase1.ConnectParams.Password:= 'masterkey'; pFIBDataBase1.AliasName:= 'Test'; pFIBDataBase1.DBName:= 'D:\Eigene Dateien von Internet\Borland Studio- Projekte\FirebirdDatenbanken\FB2_0Datenbank\examples\empbuild\EMPLOYEE.FDB'; pFIBDataBase1.LibraryName:='C:\Programme\Firebird\Firebird_2_0\bin\fbclient.dll'; pFIBDataBase1.DefaultTransaction:= pFIBTransaction1; pFIBDataBase1.DefaultUpdateTransaction:= pFIBTransaction1; pFIBDataBase1.Connected:= TRUE; pFIBDataSet1.Name:= 'pFIBDataSet1'; pFIBDataSet1.Database:=pFIBDataBase1; pFIBDataSet1.Transaction:= pFIBTransaction1; pFIBDataSet1.AutoCommit:= TRUE; pFIBDataSet1.AutoUpdateOptions.UpdateTableName:= 'EMPLOYEE'; pFIBDataSet1.AutoUpdateOptions.AutoReWriteSqls:= TRUE; pFIBTransaction1.Name:= 'pFIBTransaction1'; pFIBTransaction1.TPBMode:= tpbDefault; pFIBTransaction1.TimeoutAction:= TACommit; pFIBTransaction1.Active:= TRUE; DataSource1.DataSet:= pFIBDataSet1; end; procedure TfrmFIBPlusDemo.FormDestroy(Sender: TObject); begin freeandNil(pFIBDataSet1); freeandNil(pFIBTransaction1); freeandNil(pFIBDataBase1); end; Bis bald Chemiker |
Re: TQuery function umstellen auf FibPlus
Zitat:
Delphi-Quellcode:
vielleicht?
DataSet.Open;
|
Re: TQuery function umstellen auf FibPlus
mit "open" geht es leider auch nicht. Ist eine read-only property.
|
Re: TQuery function umstellen auf FibPlus
habe es jetzt mit "execquery" versucht, und es hat geklappt, ich weiss aber nicht ob das so richtig ist?!?
|
Re: TQuery function umstellen auf FibPlus
Hallo,
du musste ich doch mal in den Quellen nachsehen und guck an, es ist tatsächlich ExecQuery. Dass Open ist nur zum Lesen da (z.b. nach einem Select). Bei der BDE war es eh komisch mit Open und ExecSQL. Heiko |
Re: TQuery function umstellen auf FibPlus
ich glaube ich kann das mit dieser Komponente nicht machen, was ich vorhabe.
Ich denke ich muss TpFibDataSet verwenden, weil TpFibQuery kann kein locate...?!? Ich glaube ich stehe im Wald... :| |
Re: TQuery function umstellen auf FibPlus
TpFibQuery ist eh nur aus Kompatibilitätsgründen zur BDE vorhanden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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-2025 by Thomas Breitkreuz