Delphi-PRAXiS
Seite 1 von 8  1 23     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 24. Jul 2009 09:58

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

hoika 27. Jul 2009 11:19

Re: TQuery function umstellen auf FibPlus
 
Hallo,

ich will auch die BDE ersetzen ... ;)

Zitat:

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?!
Ja, warum sollte das nicht gehen?
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

Eppos 27. Jul 2009 22:25

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...?!?

Chemiker 27. Jul 2009 22:59

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:
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;
end.

Bis bald Chemiker

mkinzler 28. Jul 2009 06:41

Re: TQuery function umstellen auf FibPlus
 
Zitat:

das Problem ist, das es kein "active" gibt und erhlich gesagt weiss ich nicht was sonst verwendet werden soll...?!?
Delphi-Quellcode:
DataSet.Open;
vielleicht?

Eppos 28. Jul 2009 09:47

Re: TQuery function umstellen auf FibPlus
 
mit "open" geht es leider auch nicht. Ist eine read-only property.

Eppos 28. Jul 2009 10:06

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?!?

hoika 28. Jul 2009 10:42

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

Eppos 28. Jul 2009 10:42

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... :|

mkinzler 28. Jul 2009 11:43

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 21:01 Uhr.
Seite 1 von 8  1 23     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