AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TQuery function umstellen auf FibPlus
Thema durchsuchen
Ansicht
Themen-Optionen

TQuery function umstellen auf FibPlus

Ein Thema von Eppos · begonnen am 24. Jul 2009 · letzter Beitrag vom 26. Aug 2009
Antwort Antwort
Seite 1 von 8  1 23     Letzte »    
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#1

TQuery function umstellen auf FibPlus

  Alt 24. Jul 2009, 10:58
Datenbank: Firebird • Version: 1.5 • Zugriff über: BDE
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
  Mit Zitat antworten Zitat
hoika

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

Re: TQuery function umstellen auf FibPlus

  Alt 27. Jul 2009, 12:19
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
Heiko
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TQuery function umstellen auf FibPlus

  Alt 27. Jul 2009, 23:25
das Problem ist, das es kein "active" gibt und erhlich gesagt weiss ich nicht was sonst verwendet werden soll...?!?
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TQuery function umstellen auf FibPlus

  Alt 27. Jul 2009, 23:59
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
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: TQuery function umstellen auf FibPlus

  Alt 28. Jul 2009, 07:41
Zitat:
das Problem ist, das es kein "active" gibt und erhlich gesagt weiss ich nicht was sonst verwendet werden soll...?!?
DataSet.Open; vielleicht?
Markus Kinzler
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TQuery function umstellen auf FibPlus

  Alt 28. Jul 2009, 10:47
mit "open" geht es leider auch nicht. Ist eine read-only property.
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TQuery function umstellen auf FibPlus

  Alt 28. Jul 2009, 11:06
habe es jetzt mit "execquery" versucht, und es hat geklappt, ich weiss aber nicht ob das so richtig ist?!?
  Mit Zitat antworten Zitat
hoika

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

Re: TQuery function umstellen auf FibPlus

  Alt 28. Jul 2009, 11:42
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
Heiko
  Mit Zitat antworten Zitat
Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: TQuery function umstellen auf FibPlus

  Alt 28. Jul 2009, 11:42
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...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: TQuery function umstellen auf FibPlus

  Alt 28. Jul 2009, 12:43
TpFibQuery ist eh nur aus Kompatibilitätsgründen zur BDE vorhanden.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 8  1 23     Letzte »    


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 21:30 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