Files
lazarus-ccr/components/tvplanit/source/vpsqlbde.pas

113 lines
3.9 KiB
ObjectPascal
Raw Normal View History

{*********************************************************}
{* VPSQLBDE.PAS 1.03 *}
{*********************************************************}
{* ***** BEGIN LICENSE BLOCK ***** *}
{* Version: MPL 1.1 *}
{* *}
{* The contents of this file are subject to the Mozilla Public License *}
{* Version 1.1 (the "License"); you may not use this file except in *}
{* compliance with the License. You may obtain a copy of the License at *}
{* http://www.mozilla.org/MPL/ *}
{* *}
{* Software distributed under the License is distributed on an "AS IS" basis, *}
{* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License *}
{* for the specific language governing rights and limitations under the *}
{* License. *}
{* *}
{* The Original Code is TurboPower Visual PlanIt *}
{* *}
{* The Initial Developer of the Original Code is TurboPower Software *}
{* *}
{* Portions created by TurboPower Software Inc. are Copyright (C) 2002 *}
{* TurboPower Software Inc. All Rights Reserved. *}
{* *}
{* Contributor(s): *}
{* Hannes Danzl *}
{* *}
{* ***** END LICENSE BLOCK ***** *}
{This unit was provided by Hannes Danzl and is used here with permission }
unit VPSQLBDE;
interface
uses
classes, VPDbIntf, dbtables, db, sysutils;
type
// implements the ISQLDataSet interface for TQuery
TshwBDEDataset = class(TQuery, ISQLDataSet)
protected
// see ISQLDataset.iConnectionParams
fConnectionParams: TStringlist;
// see ISQLDataset.iSQL
procedure SetiSQL(const value: String); virtual;
// see ISQLDataset.iSQL
function GetiSQL:String; virtual;
// see ISQLDataset.iExecSQL
procedure IExecSQL; virtual;
// see ISQLDataset.iConnectionParams
procedure SetiConnectionParams(const value: String); virtual;
// see ISQLDataset.iConnectionParams
function GetiConnectionParams:String; virtual;
public
// constructor
constructor Create(aOwner: TComponent); override;
// destructor
destructor Destroy; override;
end;
implementation
constructor TshwBDEDataset.Create(aOwner: TComponent);
begin
inherited;
fConnectionParams:=TStringlist.Create;
RequestLive:=true;
end;
destructor TshwBDEDataset.Destroy;
begin
fConnectionParams.free;
inherited;
end;
function TshwBDEDataset.GetiConnectionParams: String;
begin
result:=fConnectionParams.Text;
end;
function TshwBDEDataset.GetiSQL: String;
begin
result:=sql.text;
end;
procedure TshwBDEDataset.IExecSQL;
begin
ExecSQL;
end;
procedure TshwBDEDataset.SetiConnectionParams(const value: String);
begin
fConnectionParams.Text:=value;
Close;
DatabaseName:=fConnectionParams.Values['DatabaseName'];
end;
procedure TshwBDEDataset.SetiSQL(const value: String);
begin
sql.text:=value;
end;
function CreateBDESQLDataset(InterfaceClass: String): TDataset;
begin
result:=TshwBDEDataset.Create(nil);
end;
initialization
// IMPORTANT: register it
sSQLDatasetFactory.RegisterInterfaceType('BDE', @CreateBDESQLDataset);
end.