You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6119 8e941d3f-bd1b-0410-a28a-d453659cc2b4
137 lines
3.3 KiB
ObjectPascal
137 lines
3.3 KiB
ObjectPascal
{*******************************************************}
|
|
{ }
|
|
{ Delphi Visual Component Library }
|
|
{ Open QBuilder Engine for IBX Sources }
|
|
{ }
|
|
{ Copyright (c) 2003 Fast Reports, Inc. }
|
|
{ }
|
|
{ Adapted to Lazarus by Reinier Olislagers October 2014 }
|
|
{*******************************************************}
|
|
|
|
//untested: ibx users, please test!
|
|
|
|
unit QBEIBX;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ExtCtrls, DB, IBDatabase, IBQuery, QBuilder;
|
|
|
|
type
|
|
TOQBEngineIBX = class(TOQBEngine)
|
|
private
|
|
FResultQuery: TIBQuery;
|
|
FIBXConnection : TIBDatabase;
|
|
FTransaction : TIBTransaction;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
procedure ClearQuerySQL; override;
|
|
procedure CloseResultQuery; override;
|
|
procedure OpenResultQuery; override;
|
|
procedure ReadFieldList(const ATableName: string); override;
|
|
procedure ReadTableList; override;
|
|
procedure SaveResultQueryData; override;
|
|
procedure SetConnection(Value: TIBDatabase);
|
|
procedure SetQuerySQL(const Value: string); override;
|
|
function ResultQuery: TDataSet; override;
|
|
function SelectDatabase: Boolean; override;
|
|
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
|
published
|
|
// Breaking change: used to be DatabaseName
|
|
property Connection: TIBDatabase read FIBXConnection write SetConnection;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TOQBEngineIBX }
|
|
|
|
constructor TOQBEngineIBX.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
FResultQuery := TIBQuery.Create(Self);
|
|
FTransaction := TIBTransaction.Create(Self);
|
|
FResultQuery.Transaction := FTransaction;
|
|
end;
|
|
|
|
destructor TOQBEngineIBX.Destroy;
|
|
begin
|
|
FResultQuery.Free;
|
|
FTransaction.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.SetConnection(Value: TIBDatabase);
|
|
begin
|
|
FIBXConnection := Value;
|
|
FResultQuery.Database := Value;
|
|
end;
|
|
|
|
function TOQBEngineIBX.SelectDatabase: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.ReadTableList;
|
|
begin
|
|
TableList.Clear;
|
|
FResultQuery.Database.GetTableNames(TableList, ShowSystemTables);
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.ReadFieldList(const ATableName: string);
|
|
begin
|
|
FieldList.Clear;
|
|
FResultQuery.Database.GetFieldNames(ATableName, FieldList);
|
|
FieldList.Insert(0, '*');
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.ClearQuerySQL;
|
|
begin
|
|
FResultQuery.SQL.Clear;
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.SetQuerySQL(const Value: string);
|
|
begin
|
|
FResultQuery.SQL.Text := Value;
|
|
end;
|
|
|
|
function TOQBEngineIBX.ResultQuery: TDataSet;
|
|
begin
|
|
Result := FResultQuery;
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.OpenResultQuery;
|
|
begin
|
|
FTransaction.DefaultDatabase := FIBXConnection;
|
|
FTransaction.Active := True;
|
|
FResultQuery.Open;
|
|
end;
|
|
|
|
procedure TOQBEngineIBX.CloseResultQuery;
|
|
begin
|
|
FResultQuery.Close;
|
|
end;
|
|
|
|
{$WARNINGS OFF}
|
|
procedure TOQBEngineIBX.SaveResultQueryData;
|
|
begin
|
|
//
|
|
end;
|
|
{$WARNINGS ON}
|
|
|
|
procedure TOQBEngineIBX.Notification(AComponent: TComponent;
|
|
Operation: TOperation);
|
|
begin
|
|
inherited;
|
|
if (AComponent = FIBXConnection) and (Operation = opRemove) then
|
|
begin
|
|
FIBXCOnnection := nil;
|
|
FResultQuery.Database := nil;
|
|
end;
|
|
end;
|
|
|
|
|
|
end.
|
|
|