亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ibxdatadriverdesigneh.pas

?? EHlib CN For Delphi2009
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
{*******************************************************}
{                                                       }
{                     EhLib v4.0                        }
{                                                       }
{            TIBXDesignDataBaseEh (Build 4.0.19)        }
{                                                       }
{     Copyright (c) 2004-2005 by Dmitry V. Bolshakov    }
{                                                       }
{*******************************************************}

unit IBXDataDriverDesignEh;

{$I EHLIB.INC}

interface

uses Windows, SysUtils, Classes, Controls, DB,
{$IFDEF EH_LIB_6} Variants, {$ENDIF}
{$IFDEF EH_LIB_5} Contnrs, {$ENDIF}
  ToolCtrlsEh, DBCommon, MemTableDataEh, DataDriverEh, IBDatabase,
  IBQuery, IBTable, IBStoredProc, SQLDriverEditEh, IBXDataDriverEh,
  ComCtrls, MemTableEh, Forms, UpdateSQLEditEh, Dialogs
//design-time  ,Ibdatabaseedit
{$IFDEF DESIGNTIME}
  {$IFDEF CIL}
   ,Borland.Vcl.Design.Ibdatabaseedit
  {$ELSE}
   ,Ibdatabaseedit
  {$ENDIF}
{$ENDIF}
  ;

type

{ IIBXDesignDataBaseEh }

  IIBXDesignDataBaseEh = interface
  ['{9E53BD33-4E5E-414F-9E4A-4980A8F7637A}']
    function GetDatabase: TIBDatabase;
  end;

{ TIBXDesignDataBaseEh }

  TIBXDesignDataBaseEh = class(TDesignDataBaseEh, IIBXDesignDataBaseEh)
  private
    FTablesMT: TMemTableEh;
    FColumnsMT: TMemTableEh;
    FDatabase: TIBDatabase;
    FTransaction: TIBTransaction;
    FTreeNodeMan: TCustomDBService;
    FDBService: TCustomDBService;
    FUpdateObjectsList: TStringList;
    FApplicationDatabase: TIBDatabase;
    procedure SetApplicationDatabase(const Value: TIBDatabase);
  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 GetDatabase: TIBDatabase;
    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(List: TList): Boolean;
    function BuildOracleObjectTree(TreeView: TTreeView): Boolean;
    function SupportCustomSQLDataDriver: Boolean; override;
    function GetFieldList(const TableName: string; DataSet: TDataSet): Boolean; override;
    function GetSpecParamsList: String; override;
    function GetCustomDBService: TCustomDBService; override;
    function GetIncrementObjectsList: TStrings; override;
    procedure EditDatabaseParams; override;
    property ApplicationDatabase: TIBDatabase read FApplicationDatabase write SetApplicationDatabase;
  end;

  TIBXAccessEngineEh = class(TAccessEngineEh)
    function AccessEngineName: String; override;
//    function CreateDesignDataBase(DataDriver: TCustomSQLDataDriverEh): TDesignDataBaseEh; override;
    function CreateDesignDataBase(DataDriver: TCustomSQLDataDriverEh;
      DBServiceClass: TCustomDBServiceClass; DataBaseName: String): TDesignDataBaseEh; override;
  end;

procedure RegisterIBXAccessEngines;
procedure UnregisterIBXAccessEngines;

procedure Register;

implementation

uses
{$IFDEF DESIGNTIME}
	MemTableDesignEh,
{$IFDEF CIL}
  Borland.Vcl.Design.DesignIntf,
{$ELSE}
  {$IFDEF EH_LIB_6}
     DesignIntf,
  {$ELSE} //EH_LIB_6
      DsgnIntf,
  {$ENDIF}
  DBReg,
{$ENDIF}
{$ENDIF}
DesignConnectionListEh;

function CreateDesignDataBase(DataDriver: TIBXDataDriverEh): TComponent;
var
  DesignDataBase: TIBXDesignDataBaseEh;
//  SourceIBDatabase: TIBDatabase;
begin
  DesignDataBase :=  TIBXDesignDataBaseEh.Create;
//  SourceIBDatabase := TIBDatabase.Create(nil);
  if DataDriver.Database <> nil then
  begin
    DesignDataBase.FDatabase.DataBaseName := DataDriver.Database.DataBaseName;
    DesignDataBase.FDatabase.Params := DataDriver.Database.Params;
    DesignDataBase.FDatabase.SQLDialect := DataDriver.Database.SQLDialect;
    DesignDataBase.ApplicationDatabase := DataDriver.Database;
  end;
{$IFDEF DESIGNTIME}
    EditIBDatabase(DesignDataBase.FDatabase);
{$ENDIF}
//    SourceIBDatabase.FDBEDataBase.DatabaseName := GetUnicalDataBaseName;
  Result := DesignDataBase;
end;

procedure SetDesignIBXDataBaseProcEh(DataDriver: TCustomSQLDataDriverEh);
var
  i: Integer;
  DesignDataBase: TComponent;
begin
  if DataDriver.DesignDataBase = nil then
  begin
    for i := 0 to GetDesignDataBaseList.Count-1 do
      if TDesignDataBaseEh(GetDesignDataBaseList[i]).DesignDataBaseConnetionEqual(DataDriver) then
      begin
        DataDriver.DesignDataBase := TComponent(GetDesignDataBaseList[i]);
        Exit;
      end;

    if GetDesignDataBaseList.Count > 0 then
    begin
      DesignDataBase := SelectDesignConnectionListEh(DesignDataBaseList);
      if (DesignDataBase <> nil) and (DesignDataBase <> DataDriver.DesignDataBase) then
        DataDriver.DesignDataBase := DesignDataBase;
    end else
      DataDriver.DesignDataBase := CreateDesignDataBase(TIBXDataDriverEh(DataDriver));
  end;
end;

procedure RegisterIBXAccessEngines;
begin
  RegisterDesignDataBuilderProcEh(TIBXDataDriverEh, SetDesignIBXDataBaseProcEh);
  RegisterAccessEngine('IBX', TIBXAccessEngineEh.Create);
end;

procedure UnregisterIBXAccessEngines;
begin
  UnregisterDesignDataBuilderProcEh(TIBXDataDriverEh);
  UnregisterAccessEngine('IBX');
//  UnregisterDBServiceEngine(Engine, BDEUniService);
end;

function GetServerName(IBDatabase: TIBDatabase; var ServerName: String): Boolean;
begin
  ServerName := 'INTERBASE';//AnsiUpperCase(IBDatabase.DriverName);
  Result := True;
end;

{
var
  DataBaseInc: Integer = 0;

function GetUnicalDataBaseName: String;
begin
  Inc(DataBaseInc);
  Result := 'IBXDataDriverEhDataBaseName' + IntToStr(DataBaseInc);
end;
}

{ TIBXDesignDataBaseEh }

function TIBXDesignDataBaseEh.BuildObjectTree(List: TList): Boolean;
begin
  Result := False;
//  TreeView.Items.Clear;
  if ServerTypeName = 'INFORMIX' then
//    Result := BuildInformixObjectTree(TreeView)
  else if ServerTypeName = 'INTERBASE' then
    Result := BuildInterbaseObjectTree2(List)
  else
    Result := False;
end;

function TIBXDesignDataBaseEh.BuildUpdates(DataDriver: TCustomSQLDataDriverEh): Boolean;
begin
  Result := EditDataDriverUpdateSQL(DataDriver as TCustomSQLDataDriverEh);// UpdateSQLEditEh
end;

constructor TIBXDesignDataBaseEh.Create;
begin
  inherited Create;
  FDatabase := TIBDatabase.Create(Application);
  FTransaction := TIBTransaction.Create(Application);
  FTransaction.DefaultDatabase := FDatabase;
  FTablesMT := TMemTableEh.Create(nil);
  FColumnsMT := TMemTableEh.Create(nil);
  FDBService := TInterbaseDBService.Create(Self)
end;

destructor TIBXDesignDataBaseEh.Destroy;
begin
  if not (csDestroying in Application.ComponentState) then
    FDatabase.Free;
  if not (csDestroying in Application.ComponentState) then
    FTransaction.Free;
  FTablesMT.Free;
  FColumnsMT.Free;
  FTreeNodeMan.Free;
  FreeAndNil(FDBService);
  FreeAndNil(FUpdateObjectsList);
  inherited Destroy;
end;

function TIBXDesignDataBaseEh.CreateDesignCopy(RTDataDriver: TCustomSQLDataDriverEh): TCustomSQLDataDriverEh;
begin
  Result := TIBXDataDriverEh.Create(nil);
  Result.SelectCommand := RTDataDriver.SelectCommand;
  Result.UpdateCommand := RTDataDriver.UpdateCommand;
  Result.InsertCommand := RTDataDriver.InsertCommand;
  Result.DeleteCommand := RTDataDriver.DeleteCommand;
  Result.GetrecCommand := RTDataDriver.GetrecCommand;
  TIBXDataDriverEh(Result).SpecParams := TIBXDataDriverEh(RTDataDriver).SpecParams;
//  TIBXDataDriverEh(Result).Database := FDatabase;
end;

function TIBXDesignDataBaseEh.DesignDataBaseConnetionEqual(DataDriver: TCustomSQLDataDriverEh): Boolean;
begin
  Result := False;
  if DataDriver is TIBXDataDriverEh then
  begin
    if TIBXDataDriverEh(DataDriver).Database <> nil then
      Result := (ApplicationDatabase = TIBXDataDriverEh(DataDriver).Database);
  end;
end;

function TIBXDesignDataBaseEh.Execute(Command: TCustomSQLCommandEh; var Cursor: TDataSet; var FreeOnEof: Boolean): Integer;
begin
  Result := -1;
  FreeOnEof := True;
  with Command do
    case CommandType of
      cthSelectQuery, cthUpdateQuery:
        begin
          Cursor := TIBQuery.Create(nil);
          with Cursor as TIBQuery do
          begin
            Database := FDatabase;
            SQL := Command.CommandText;
            Params := Command.GetParams;
            if CommandType = cthSelectQuery then
              Open
            else
            begin
              ExecSQL;
              Result := RowsAffected;
            end;
          end;
        end;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美系列日韩一区| 精品不卡在线视频| 黄色日韩网站视频| 亚洲视频每日更新| 欧美成人国产一区二区| 日本久久电影网| 国产ts人妖一区二区| 日韩精品欧美精品| 亚洲欧美另类小说| 国产女人18水真多18精品一级做| 欧美日韩国产精品成人| 一本色道久久综合亚洲aⅴ蜜桃| 精品一二三四在线| 免费成人结看片| 午夜伦理一区二区| 亚洲免费观看高清完整版在线| 国产亚洲视频系列| 久久影院午夜片一区| 欧美美女视频在线观看| 在线观看日韩精品| 色屁屁一区二区| 91在线国产福利| aaa欧美日韩| 99久久国产综合精品麻豆| 国产精品白丝av| 国产乱人伦精品一区二区在线观看 | 国模一区二区三区白浆| 日韩不卡一二三区| 亚洲香蕉伊在人在线观| 一区二区三区不卡在线观看| 亚洲色图都市小说| 亚洲精选视频免费看| 亚洲视频免费在线| 日韩美女视频一区| 亚洲色图在线播放| 亚洲同性gay激情无套| 亚洲婷婷综合色高清在线| 国产精品传媒在线| 国产精品久久久久aaaa樱花| 18涩涩午夜精品.www| 中文字幕一区av| 亚洲日本一区二区| 亚洲一区视频在线观看视频| 亚洲超碰97人人做人人爱| 亚洲高清视频的网址| 日本午夜一本久久久综合| 欧美bbbbb| 国产在线播放一区二区三区| 精东粉嫩av免费一区二区三区| 狠狠色综合日日| 国产白丝网站精品污在线入口| 高清国产一区二区| 99久久免费精品高清特色大片| 色婷婷精品久久二区二区蜜臂av| 欧美视频中文一区二区三区在线观看| 欧美亚洲禁片免费| 日韩欧美电影在线| 久久精品日产第一区二区三区高清版 | www.日本不卡| 欧美亚洲国产一区二区三区va| 欧美日韩不卡在线| 欧美xxxx老人做受| 国产精品国产自产拍在线| 亚洲成人自拍偷拍| 美女任你摸久久| 成人激情文学综合网| 在线一区二区三区四区五区| 欧美片网站yy| 久久午夜电影网| 亚洲日韩欧美一区二区在线| 日韩成人午夜电影| 国产精品一卡二卡在线观看| 91麻豆精品一区二区三区| 欧美一区二区人人喊爽| 久久久久久**毛片大全| 日韩一区中文字幕| 日韩—二三区免费观看av| 成人涩涩免费视频| 欧美军同video69gay| 欧美国产禁国产网站cc| 午夜a成v人精品| 波波电影院一区二区三区| 777欧美精品| 国产精品久久久久aaaa樱花 | 亚洲欧美中日韩| 日韩综合小视频| www.在线欧美| 欧美精品一区男女天堂| 亚洲一区影音先锋| 国产.欧美.日韩| 欧美一区日韩一区| 亚洲视频在线一区观看| 韩国一区二区三区| 欧美三级电影网站| 国产精品麻豆网站| 麻豆久久久久久| 在线免费观看成人短视频| 国产日韩欧美麻豆| 蜜臀精品一区二区三区在线观看 | 国产精品自在在线| 777午夜精品免费视频| 亚洲视频免费观看| 国产91对白在线观看九色| 91精品国产色综合久久| 一区二区三区四区亚洲| 国产69精品久久久久777| 日韩欧美卡一卡二| 午夜精品久久久久久久99水蜜桃 | 7777女厕盗摄久久久| 国产精品婷婷午夜在线观看| 麻豆精品视频在线观看| 欧美日韩国产首页| 亚洲一区精品在线| 99这里都是精品| 国产精品欧美一区喷水| 极品瑜伽女神91| 日韩一级片网站| 午夜国产精品影院在线观看| 在线观看免费亚洲| 一区二区三区高清不卡| 91亚洲精品久久久蜜桃网站| 中文字幕乱码一区二区免费| 精品一区二区三区蜜桃| 日韩女优毛片在线| 美女一区二区视频| 日韩欧美一级二级三级| 美女国产一区二区三区| 欧美一二区视频| 亚洲国产精品久久久久秋霞影院| 91在线无精精品入口| 中文字幕五月欧美| 99麻豆久久久国产精品免费 | 最新日韩在线视频| 不卡一区二区三区四区| 国产精品免费av| 成人免费视频国产在线观看| 国产视频视频一区| 岛国一区二区三区| 国产精品狼人久久影院观看方式| gogo大胆日本视频一区| 亚洲色图制服诱惑| 欧美最新大片在线看| 三级在线观看一区二区| 欧美一级高清片在线观看| 麻豆成人91精品二区三区| 精品欧美乱码久久久久久| 国产福利一区二区三区在线视频| 国产香蕉久久精品综合网| 9色porny自拍视频一区二区| 亚洲精品免费在线观看| 欧美日韩国产三级| 精品一二线国产| 中文字幕av一区二区三区| 91蝌蚪porny| 亚洲v日本v欧美v久久精品| 欧美videos中文字幕| 成人午夜视频网站| 亚洲一区二区四区蜜桃| 日韩一区二区在线观看| 国产精品一卡二卡| 亚洲乱码日产精品bd| 欧美一区二区在线观看| 国产在线国偷精品产拍免费yy| 中文字幕国产精品一区二区| 欧美综合亚洲图片综合区| 日韩电影在线观看网站| 国产亚洲人成网站| 欧美性欧美巨大黑白大战| 麻豆91在线播放| 亚洲人成网站色在线观看| 欧美精品乱人伦久久久久久| 国产精品99久久久久久久女警 | 欧美性猛片xxxx免费看久爱| 麻豆精品在线视频| 成人免费在线视频| 欧美肥妇free| 9i在线看片成人免费| 美女视频黄久久| 一区二区在线看| 久久久91精品国产一区二区精品| 在线看国产一区| 国产成人精品影院| 日韩电影在线一区二区三区| 国产精品久久久久久久久晋中| 制服丝袜中文字幕亚洲| 岛国精品在线播放| 毛片一区二区三区| 亚洲激情一二三区| 欧美激情一二三区| 欧美成人a∨高清免费观看| 91麻豆自制传媒国产之光| 国产一区不卡精品| 香蕉影视欧美成人| 亚洲婷婷在线视频| 久久久国产精华| 欧美一区二区久久久| 欧美性感一区二区三区| 成人av免费在线| 国产激情视频一区二区三区欧美| 肉丝袜脚交视频一区二区|