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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dws2ibxdatasrc.pas

?? script language
?? PAS
字號:
unit dws2IbxDataSrc;

interface

uses
  SysUtils, Classes, dws2Comp, dws2Symbols, dws2IbxModule, DB, IBQuery,
  IBCustomDataSet, IBDatabase;

type
  Tdws2IBXDataSrc = class(TComponent)
  private
    FIBXStatement: TIBCustomDataSet;
    FIBXLib: Tdws2IBXLib;

    FDeclaration: string;
    function AllCompAssigned: boolean;
    procedure SetIBXLib(AdwsLib: Tdws2IBXLib);
    function GetIBXStatement: TIBCustomDataSet;
    procedure SetIBXStatement(AStatement: TIBCustomDataSet);
    procedure AddPredefDataset;
    procedure RemovePredefDataset;
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
    dwsIBXStatementObj: TdwsIBXStatementObj;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure InitScriptInstance(var ExtObject: TObject);
  published
    property Declaration: string read FDeclaration write FDeclaration;
    property IBXLib: Tdws2IBXLib read FIBXLib write SetIBXLib;
    property IBXStatement: TIBCustomDataSet read GetIBXStatement write SetIBXStatement;
  end;

  Tdws2IBXDataBase = class(TComponent)
  private
    FDataBase: TIBDatabase;
    FIBXLib: Tdws2IBXLib;
    FDeclaration: string;
    function AllCompAssigned: boolean;
    procedure SetIBXLib(AdwsLib: Tdws2IBXLib);
    function GetIBXConnection: TIBDatabase;
    procedure SetIBXConnection(AConnection: TIBDatabase);
    procedure AddPredefDataBase;
    procedure RemovePredefDataBase;
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
    dwsIBXDataBaseObj: TdwsIBXDataBaseObj;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure InitScriptInstance(var ExtObject: TObject);
  published
    property Declaration: string read FDeclaration write FDeclaration;
    property IBXLib: Tdws2IBXLib read FIBXLib write SetIBXLib;
    property DataBase: TIBDatabase read GetIBXConnection write SetIBXConnection;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('DWS2', [Tdws2IBXDataSrc]);
  RegisterComponents('DWS2', [Tdws2IBXDataBase]);
end;

// --------------------------------------------------------------
// -----------------   Tdws2IBXDataSrc    ---------------------
// --------------------------------------------------------------

constructor Tdws2IBXDataSrc.Create(AOwner: TComponent);
begin
  inherited;
  dwsIBXStatementObj := TdwsIBXStatementObj.Create;
end;

destructor Tdws2IBXDataSrc.Destroy;
begin
  RemovePredefDataset;
  if assigned(dwsIBXStatementObj) then
  begin
    dwsIBXStatementObj.IBXStatement := nil;
    dwsIBXStatementObj.Free;
  end;
  inherited;
end;

function Tdws2IBXDataSrc.AllCompAssigned: boolean;
begin
  result := Assigned(FIBXLib) and Assigned(FIBXStatement);
end;

procedure Tdws2IBXDataSrc.InitScriptInstance(var ExtObject: TObject);
begin
  //FIBXStatement.prepare;
  dwsIBXStatementObj.IBXStatement := FIBXStatement;
  ExtObject := dwsIBXStatementObj;
end;

procedure Tdws2IBXDataSrc.AddPredefDataset;
var
  PredefDataset: Tdws2Instance;
begin
  if AllCompAssigned and not (csDesigning in ComponentState) then
  begin
    PredefDataset := Tdws2Instance(FIBXLib.customIBXUnit.Instances.Add);
    if (FIBXStatement is TIBQuery) then
      PredefDataset.DataType := 'TQuery'
    else if (FIBXStatement is TIBDataSet) then
      PredefDataset.DataType := 'TDataSet';
    //else  if (FIBXStatement is TIBStatement) then
    //  PredefDataset.DataType := 'TStatement';

    PredefDataset.Name := Declaration;
    PredefDataset.AutoDestroyExternalObject := false;
    PredefDataset.OnInstantiate := InitScriptInstance;
    //    PredefDataset.OnCleanUp := CleanUp;
  end;
end;

procedure Tdws2IBXDataSrc.RemovePredefDataset;
var
  i: Integer;
begin
  if AllCompAssigned and not (csDesigning in ComponentState) then
    with FIBXLib.customIBXUnit.Variables do
    begin
      for i := 0 to count - 1 do
      begin
        if Tdws2Global(items[i]).name = Declaration then
        begin
          delete(i);
          exit;
        end;
      end;
    end;
end;

procedure Tdws2IBXDataSrc.SetIBXLib(AdwsLib: Tdws2IBXLib);
begin
  if AdwsLib <> FIBXLib then
  begin
    //    if Assigned(FIBXLib) then
    //      FIBXLib.RemoveFreeNotification(Self);
    if Assigned(AdwsLib) then
      AdwsLib.FreeNotification(Self);
    RemovePredefDataset;
    FIBXLib := AdwsLib;
    AddPredefDataset;
  end;
end;

procedure Tdws2IBXDataSrc.SetIBXStatement(AStatement: TIBCustomDataSet);
begin
  if AStatement <> FIBXStatement then
  begin
    //    if Assigned(FIBXStatement) then
    //      FIBXStatement.RemoveFreeNotification(Self);
    //    if Assigned(AStatement) then
    //      AStatement.FreeNotification(Self);
    RemovePredefDataset;
    FIBXStatement := AStatement;
    AddPredefDataset;
  end;
end;

function Tdws2IBXDataSrc.GetIBXStatement: TIBCustomDataSet;
begin
  Result := FIBXStatement;
end;

procedure Tdws2IBXDataSrc.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  // The FIBXStatement object notifies us that it's going to be removed
  if (Operation = opRemove) and (AComponent = FIBXStatement) then
    SetIBXStatement(nil);
  if (Operation = opRemove) and (AComponent = FIBXLib) then
    SetIBXLib(nil);
end;

// --------------------------------------------------------------
// -----------------   Tdws2IBXDataBase  ---------------------
// --------------------------------------------------------------

constructor Tdws2IBXDataBase.Create(AOwner: TComponent);
begin
  inherited;
  dwsIBXDataBaseObj := TdwsIBXDataBaseObj.Create;
end;

destructor Tdws2IBXDataBase.Destroy;
begin
  RemovePredefDataBase;
  if assigned(dwsIBXDataBaseObj) then
  begin
    dwsIBXDataBaseObj.IBXConnection := nil;
    dwsIBXDataBaseObj.free;
  end;
  inherited;
end;

function Tdws2IBXDataBase.AllCompAssigned: boolean;
begin
  result := Assigned(FIBXLib) and Assigned(FDataBase);
end;

procedure Tdws2IBXDataBase.InitScriptInstance(var ExtObject: TObject);
begin
  FDataBase.Connected := true;
  dwsIBXDataBaseObj.IBXConnection := FDataBase;
  ExtObject := dwsIBXDataBaseObj;
end;

procedure Tdws2IBXDataBase.AddPredefDataBase;
var
  PredefDataBase: Tdws2Instance;
begin
  if AllCompAssigned and not (csDesigning in ComponentState) then
  begin
    PredefDataBase := Tdws2Instance(FIBXLib.customIBXUnit.Instances.Add);
    PredefDataBase.DataType := 'TDataBase';
    PredefDataBase.Name := Declaration;
    PredefDataBase.AutoDestroyExternalObject := false;
    PredefDataBase.OnInstantiate := InitScriptInstance;
  end;
end;

procedure Tdws2IBXDataBase.RemovePredefDataBase;
var
  i: Integer;
begin
  if assigned(FIBXLib) and not (csDesigning in ComponentState) then
    with FIBXLib.customIBXUnit.Variables do
    begin
      for i := 0 to count - 1 do
      begin
        if Tdws2Global(items[i]).name = Declaration then
        begin
          delete(i);
          exit;
        end;
      end;
    end;
end;

procedure Tdws2IBXDataBase.SetIBXLib(AdwsLib: Tdws2IBXLib);
begin
  if AdwsLib <> FIBXLib then
  begin
    //    if Assigned(FIBXLib) then
    //      FIBXLib.RemoveFreeNotification(Self);
    if Assigned(AdwsLib) then
      AdwsLib.FreeNotification(Self);
    RemovePredefDataBase;
    FIBXLib := AdwsLib;
    AddPredefDataBase;
  end;
end;

procedure Tdws2IBXDataBase.SetIBXConnection(AConnection: TIBDatabase);
begin
  if AConnection <> FDataBase then
  begin
    //    if Assigned(FDataBase) then
    //      FDataBase.RemoveFreeNotification(Self);
    //    if Assigned(AConnection) then
    //      AConnection.FreeNotification(Self);
    //    RemovePredefDataset;
    FDataBase := AConnection;
    AddPredefDataBase;
  end;
end;

function Tdws2IBXDataBase.GetIBXConnection: TIBDatabase;
begin
  Result := FDataBase;
end;

procedure Tdws2IBXDataBase.Notification(AComponent: TComponent; Operation: TOperation);
begin
  // The FIBXConnection object notifies us that it's going to be removed
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (AComponent = FDataBase) then
    SetIBXConnection(nil);
  if (Operation = opRemove) and (AComponent = FIBXLib) then
    SetIBXLib(nil);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情六月婷婷综合| 久热成人在线视频| 国产日韩欧美精品一区| 91精品在线麻豆| 欧美日产国产精品| 欧美一区中文字幕| 日韩三级在线观看| 精品国内片67194| 日韩免费观看高清完整版| 欧美一级一区二区| 精品免费日韩av| 26uuu成人网一区二区三区| 亚洲精品一区二区三区99| 国产清纯在线一区二区www| 国产视频一区二区在线观看| 精品人伦一区二区色婷婷| 久久婷婷久久一区二区三区| 国产色一区二区| 国产精品视频一区二区三区不卡| 亚洲一区精品在线| 亚洲国产日韩精品| 老汉av免费一区二区三区| 国产在线精品一区二区夜色| 丁香婷婷综合色啪| 色婷婷综合久久久久中文一区二区| 亚洲精品免费一二三区| 一区二区三区.www| 五月婷婷综合激情| 国产一区久久久| gogo大胆日本视频一区| 欧美日韩高清一区二区不卡| 日韩欧美高清dvd碟片| 中文字幕av一区二区三区免费看| 欧美亚洲日本国产| 欧美一级黄色片| 国产精品福利av| 欧美在线啊v一区| 精品91自产拍在线观看一区| 国产在线播放一区二区三区| 久久免费美女视频| 99久久精品国产麻豆演员表| 亚洲精品视频一区| 亚洲精品国产a| 久久精品72免费观看| 91最新地址在线播放| 精品日产卡一卡二卡麻豆| 成人免费在线视频观看| 免费在线看成人av| 97久久精品人人澡人人爽| 日韩午夜在线播放| 樱桃国产成人精品视频| 国产一区亚洲一区| 欧美老女人第四色| 亚洲欧美日韩成人高清在线一区| 亚洲成人免费在线| 国产suv精品一区二区三区| 欧美色图一区二区三区| 亚洲国产精品精华液2区45| 日本欧美久久久久免费播放网| ...xxx性欧美| 国产麻豆日韩欧美久久| 欧美手机在线视频| 亚洲人成网站影音先锋播放| 久久99精品国产麻豆不卡| 欧美日韩亚洲综合一区二区三区| 欧洲一区二区三区免费视频| 国产日韩成人精品| 国产一区二区三区在线观看精品 | 亚洲成a人v欧美综合天堂下载 | 亚洲伊人伊色伊影伊综合网| 国产在线国偷精品产拍免费yy| 麻豆精品国产91久久久久久| 欧美亚洲动漫精品| 亚洲精品乱码久久久久久黑人| 亚洲免费在线观看| 99re这里只有精品6| 国产精品护士白丝一区av| 国产成人精品免费| 国产无一区二区| 成人免费高清视频| 亚洲国产岛国毛片在线| av一区二区久久| 国产精品成人午夜| 91蜜桃视频在线| 亚洲最大的成人av| 色猫猫国产区一区二在线视频| 欧美视频一区二区在线观看| 亚洲欧美激情在线| 欧美日韩综合不卡| 亚洲成av人片一区二区梦乃| 制服.丝袜.亚洲.另类.中文| 蜜桃精品视频在线| 久久久久久电影| 成人不卡免费av| 欧美激情一区在线| 在线免费亚洲电影| 日韩精品国产欧美| 欧美精品一区二区三区蜜桃 | 亚洲大片免费看| 555夜色666亚洲国产免| 久久精品久久精品| 国产亚洲一本大道中文在线| 成人免费高清视频| 性感美女久久精品| 久久欧美一区二区| 色噜噜狠狠一区二区三区果冻| 久久久噜噜噜久久中文字幕色伊伊 | 最新中文字幕一区二区三区| 91免费视频观看| 奇米精品一区二区三区四区| 国产天堂亚洲国产碰碰| 欧美在线一区二区| 国产麻豆精品视频| 亚洲欧美日韩一区| 日韩欧美亚洲国产另类| av高清久久久| 麻豆精品视频在线观看免费| 国产精品免费久久久久| 欧美精品视频www在线观看| 狠狠色丁香婷综合久久| 亚洲欧美另类小说| 欧美tickle裸体挠脚心vk| 99精品视频在线观看免费| 蜜桃av一区二区在线观看| 综合自拍亚洲综合图不卡区| 精品国产一区二区三区忘忧草| 日韩高清不卡一区二区三区| 国产亚洲午夜高清国产拍精品| 免费欧美高清视频| 亚洲免费在线播放| 中文无字幕一区二区三区| 欧美一区二区三区不卡| www.在线欧美| 激情五月播播久久久精品| 午夜精品一区二区三区三上悠亚| 欧美视频一区二区三区四区 | 亚洲国产另类精品专区| 久久免费偷拍视频| 3atv一区二区三区| 色婷婷香蕉在线一区二区| 成人性色生活片| 精品一区二区三区影院在线午夜| 日韩免费观看高清完整版在线观看| 亚洲mv在线观看| 国产精品热久久久久夜色精品三区 | 欧美电影免费观看高清完整版在 | 一区二区三区中文字幕电影| 久久蜜桃av一区二区天堂| 欧美日本不卡视频| 欧美日韩一区三区四区| 99精品黄色片免费大全| 成人sese在线| 成人免费观看男女羞羞视频| 国产成人精品亚洲777人妖| 国产一区二区三区四区五区美女 | 精品国产一区a| 337p亚洲精品色噜噜| 色婷婷精品大在线视频| 成人av网址在线观看| av午夜精品一区二区三区| jlzzjlzz欧美大全| 色偷偷一区二区三区| 色综合中文字幕国产| av在线不卡免费看| 91视频在线看| 欧美在线影院一区二区| 欧美日韩国产三级| 欧美一区二区三区视频免费播放 | 亚洲人成人一区二区在线观看 | 日韩三级在线观看| 久久嫩草精品久久久精品一| 国产日韩欧美精品综合| 国产欧美精品一区| 日本一区二区动态图| 国产精品对白交换视频| 亚洲一区二区在线免费看| 日本欧美久久久久免费播放网| 国产精品久久综合| 自拍偷拍国产精品| 亚洲成人精品影院| 精品一区二区免费看| www.亚洲精品| 欧美日韩一级二级| 欧美一区二区啪啪| 亚洲欧洲精品天堂一级| 天堂精品中文字幕在线| 极品美女销魂一区二区三区| 精品系列免费在线观看| www.欧美.com| 欧美一区二区成人| 综合婷婷亚洲小说| 久久99久久久欧美国产| 99精品国产热久久91蜜凸| 欧美一区二区三区在线电影| 国产精品嫩草99a| 久久国产成人午夜av影院| 91免费国产在线| 久久综合狠狠综合| 一区二区三区蜜桃| 国产成人亚洲综合a∨婷婷图片|