📄 adodatadriverdesigneh.pas
字号:
{*******************************************************}
{ }
{ EhLib v4.0 }
{ }
{ TADODesignDataBaseEh (Build 4.2.23) }
{ }
{ Copyright (c) 2004-2007 by Dmitry V. Bolshakov }
{ }
{*******************************************************}
unit ADODataDriverDesignEh;
{$I EHLIB.INC}
interface
{$IFDEF CIL}
//{$R DBXDataDriverEh.TDBXDataDriverEh.bmp}
{$R ADODataDriverEh.TADODataDriverEh.bmp}
//{$R BDEDataDriverEh.TBDEDataDriverEh.bmp}
{$ENDIF}
uses Windows, SysUtils, Classes, Controls, DB,
{$IFDEF EH_LIB_6} Variants, {$ENDIF}
{$IFDEF EH_LIB_5} Contnrs, {$ENDIF}
ToolCtrlsEh, DBCommon, MemTableDataEh, DataDriverEh, ADODB, Dialogs,
SQLDriverEditEh, ADODataDriverEh, ComCtrls, MemTableEh, Forms,
UpdateSQLEditEh;
type
(*{ IADODesignDataBaseEh }
IADODesignDataBaseEh = interface
['{9E53BD33-4E5E-414F-9E4A-4980A8F7637A}']
function GetConnection: TADOConnection;
end;*)
{ TADODesignDataBaseEh }
TADODesignDataBaseEh = class(TDesignDataBaseEh)//, IADODesignDataBaseEh)
private
FTablesMT: TMemTableEh;
FColumnsMT: TMemTableEh;
FConnection: TADOConnection;
FTreeNodeMan: TCustomDBService;
FDBServiceClass: TCustomDBServiceClass;
FApplicationConnection: TADOConnection;
procedure SetApplicationConnection(const Value: TADOConnection);
protected
function GetConnected: Boolean; override;
procedure SetConnected(const Value: Boolean); override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
constructor Create;
destructor Destroy; override;
function GetEngineName: String; override;
function ServerTypeName: String;
function CreateDesignCopy(RTDataDriver: TCustomSQLDataDriverEh): TCustomSQLDataDriverEh; override;
function DesignDataBaseConnetionEqual(DataDriver: TCustomSQLDataDriverEh): Boolean; override;
function Execute(Command: TCustomSQLCommandEh; var Cursor: TDataSet; var FreeOnEof: Boolean): Integer; override;
function GetConnection: TADOConnection;
function BuildUpdates(DataDriver: TCustomSQLDataDriverEh): Boolean; override;
function CreateReader(SQL: String; FParams: TParamsArr): TDataSet; override;
function BuildObjectTree(List: TList): Boolean; override;
// function BuildInformixObjectTree(TreeView: TTreeView): Boolean;
function BuildInterbaseObjectTree2(TreeView: TTreeView): Boolean;
function BuildOracleObjectTree(TreeView: TTreeView): Boolean;
function GetFieldList(const TableName: string; DataSet: TDataSet): Boolean; override;
function GetSpecParamsList: String; override;
function SupportCustomSQLDataDriver: Boolean; override;
function GetCustomDBService: TCustomDBService; override;
procedure EditDatabaseParams; override;
property DBServiceClass: TCustomDBServiceClass read FDBServiceClass;
property ApplicationConnection: TADOConnection read FApplicationConnection write SetApplicationConnection;
end;
{ TADOAccessEngineEh }
TADOAccessEngineEh = class(TAccessEngineEh)
function AccessEngineName: String; override;
function CreateDesignDataBase(DataDriver: TCustomSQLDataDriverEh;
DBServiceClass: TCustomDBServiceClass; DataBaseName: String): TDesignDataBaseEh; override;
// function CreateDesignDataBase(DataDriver: TCustomSQLDataDriverEh): TDesignDataBaseEh; override;
end;
{ TADODesignDataBaseEh }
TADOUniService = class(TCustomDBService)
private
FDesignDB: TDesignDataBaseEh;
FSpecPraramsService: TCustomDBService;
FNoAskForSpecPraramsService: Boolean;
protected
function CreateReader(SQL: String; FParams: TParamsArr): TDataSet; override;
public
constructor Create(ADesignDB: TDesignDataBaseEh); override;
destructor Destroy; override;
function GetSpecParamsList: String; override;
function ShowPopup(Source: TObject; Coord: TPoint; Params: TServicePopupParams): Integer; override;
procedure GenGetSpecParams(DesignUpdateParams: TDesignUpdateParamsEh;
DesignUpdateInfo: TDesignUpdateInfoEh); override;
class function GetDBServiceName: String; override;
end;
procedure UnregisterADOAccessEngines;
procedure RegisterADOAccessEngines;
procedure Register;
implementation
uses
{$IFDEF CIL}
Borland.Vcl.Design.AdoConEd,
Borland.Vcl.Design.AdoDBReg,
{$ELSE}
AdoConEd,
{$ENDIF}
{$IFDEF DESIGNTIME}
MemTableDesignEh,
{$IFDEF CIL}
Borland.Vcl.Design.DesignIntf,
Borland.Vcl.Design.DesignEditors,
{$ELSE}
{$IFDEF EH_LIB_6}
DesignIntf,
DesignEditors,
{$ELSE} //EH_LIB_6
DsgnIntf,
{$ENDIF}
DBReg,
ADOReg,
{$ENDIF}
{$ENDIF}
FormSelectFromList, DesignConnectionListEh, SelectFromListDialog;
(* 赅
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -