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

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

?? ufrmexportbusinessdata.pas

?? 抽象三層訪問數據庫示例
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
unit ufrmExportBusinessData;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Registry, IniFiles, typinfo, Buttons, Grids,
  DBGrids, DB, DBClient, uIDataAccess, uDataAccessHelper, uXLSReadWriteAgent,
  uIExcelAgent, uExcelAgentHelper, uCommon, uDataCopy,
  BIFFRecsII2, CellFormats2, XLSUtils2, XLSFonts2, ExtCtrls;

type
  TAddGrantType = (agtBusiness, agtProcess, agtRole, agtMenu, agtModule, agtBlock);

  TfrmExportBusinessData = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    rbtnEpfGJPlatformDB: TRadioButton;
    rbtnOtherDB: TRadioButton;
    lblDataBaseType: TLabel;
    cboDataBaseType: TComboBox;
    lblServerName: TLabel;
    cboDataBaseName: TComboBox;
    lblDataBaseName: TLabel;
    edtServerName: TEdit;
    lblUserName: TLabel;
    edtUserName: TEdit;
    lblPassword: TLabel;
    edtPassword: TEdit;
    cdsBusinessGrant: TClientDataSet;
    cdsBusinessConfig: TClientDataSet;
    Label1: TLabel;
    Label2: TLabel;
    edtExportFile: TEdit;
    btnExecute: TBitBtn;
    Button1: TButton;
    Bevel1: TBevel;
    Label3: TLabel;
    Bevel2: TBevel;
    Label4: TLabel;
    Bevel3: TBevel;
    Label5: TLabel;
    lblInfo: TLabel;
    cdsProcessConfig: TClientDataSet;
    cdsProcessOperates: TClientDataSet;
    mmBusinessNameOrID: TMemo;
    sbtnSelEmp: TSpeedButton;
    SaveDialog1: TSaveDialog;
    procedure rbtnEpfGJPlatformDBClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cboDataBaseTypeChange(Sender: TObject);
    procedure cboDataBaseNameChange(Sender: TObject);
    procedure cdsBusinessGrantNewRecord(DataSet: TDataSet);
    procedure btnExecuteClick(Sender: TObject);
    procedure cdsBusinessGrantAfterOpen(DataSet: TDataSet);
    procedure Button1Click(Sender: TObject);
    procedure sbtnSelEmpClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    FDataAccess: IDataAccess;
    FXLSReadWriteAgent: TXLSReadWriteAgent;
    function GetDataAccess: IDataAccess;
    function GetExcelAgent: IExcelAgent;
    function GetXLSReadWriteAgent: TXLSReadWriteAgent;
    property DataAccess: IDataAccess read GetDataAccess;
    property ExcelAgent: IExcelAgent read GetExcelAgent;
    property XLSReadWriteAgent: TXLSReadWriteAgent read GetXLSReadWriteAgent;
    procedure GetRegOracleServer;//獲取本地注冊的Oracle服務名列表
    procedure CreateBusinessGrantDataSet;//產生業務權限數據集
    procedure GetExportBusinessData(ABusinessNameOrIDs: string);//獲取業務導出數據
    procedure ExportBusinessData(ABusinessNameOrIDs, AFileName: string);//導出業務數據
    procedure ShowExecuteInfo(AInfo: string);
  public
    { Public declarations }
  end;

var
  frmExportBusinessData: TfrmExportBusinessData;

implementation

{$R *.dfm}

procedure TfrmExportBusinessData.rbtnEpfGJPlatformDBClick(Sender: TObject);
begin
  cboDataBaseType.Enabled := rbtnOtherDB.Checked;
  lblDataBaseType.Enabled := cboDataBaseType.Enabled;
  lblServerName.Enabled := cboDataBaseType.Enabled;
  cboDataBaseName.Enabled := cboDataBaseType.Enabled;
  lblDataBaseName.Enabled := cboDataBaseType.Enabled;
  edtServerName.Enabled := cboDataBaseType.Enabled;
  lblUserName.Enabled := cboDataBaseType.Enabled;
  edtUserName.Enabled := cboDataBaseType.Enabled;
  lblPassword.Enabled := cboDataBaseType.Enabled;
  edtPassword.Enabled := cboDataBaseType.Enabled;
  FDataAccess := nil;
end;

procedure TfrmExportBusinessData.FormCreate(Sender: TObject);
begin
  rbtnEpfGJPlatformDB.Checked := true;
  rbtnEpfGJPlatformDBClick(rbtnEpfGJPlatformDB);
  cboDataBaseType.Items.Delimiter := ';';
  cboDataBaseType.Items.DelimitedText := 'Oracle;MSSQL';
  cboDataBaseType.ItemIndex := 0;
  cboDataBaseType.Style := csDropDownList;
  edtServerName.Text := '';
  cboDataBaseName.Items.Clear;
  cboDataBaseName.Text := '';
  GetRegOracleServer;
  edtUserName.Text := '';
  edtPassword.Text := '';
  mmBusinessNameOrID.Text := '';
  edtExportFile.Text := '';
  lblInfo.Caption := '';
  FDataAccess := nil;
end;

function TfrmExportBusinessData.GetDataAccess: IDataAccess;
  procedure GetPlatformDB;
  var
    tmpIni: TIniFile;
    strDataBaseSection: string;
  begin
    tmpIni := TIniFile.Create(GetSysDirectory + 'ServerDefine.ini');
    try
      strDataBaseSection := tmpIni.ReadString('SYSTEM', 'DataConnType', 'Oracle');
      if CompareText(strDataBaseSection, 'Oracle') = 0 then
      begin
        FDataAccess := TDataAccessHelper.GetDOADataAccess;
        FDataAccess.SetDBType('Oracle');
      end
      else
      begin
        FDataAccess := TDataAccessHelper.GetADODataAccess;
        FDataAccess.SetDBType('MSSQL');
      end;
      FDataAccess.SetDBHost(tmpIni.ReadString(strDataBaseSection, 'ServerName', ''));
      FDataAccess.SetDBName(tmpIni.ReadString(strDataBaseSection, 'DataName', ''));
      FDataAccess.SetDBUserName(tmpIni.ReadString(strDataBaseSection, 'UserID', ''));
      FDataAccess.SetDBPassword(tmpIni.ReadString(strDataBaseSection, 'Password', ''));
    finally
      tmpIni.Free;
    end;
  end;
begin
  if FDataAccess = nil then
  begin
    if rbtnEpfGJPlatformDB.Checked then
      GetPlatformDB
    else
    begin
      if cboDataBaseType.ItemIndex = 0 then
        FDataAccess := TDataAccessHelper.GetDOADataAccess
      else
        FDataAccess := TDataAccessHelper.GetADODataAccess;
      FDataAccess.SetDBType(cboDataBaseType.Text);
      FDataAccess.SetDBHost(edtServerName.Text);
      FDataAccess.SetDBName(cboDataBaseName.Text);
      FDataAccess.SetDBUserName(edtUserName.Text);
      FDataAccess.SetDBPassword(edtPassword.Text);
    end;
  end;
  Result := FDataAccess;
end;

procedure TfrmExportBusinessData.GetRegOracleServer;
var
  strOracleHome: string;

  function GetOracleHome: string;
  var
    tmpReg: TRegistry;
    strTemp: string;
  begin
    result := '';
    tmpReg := TRegistry.Create;
    try
      tmpReg.RootKey := HKEY_LOCAL_MACHINE;
      if tmpReg.OpenKey('SOFTWARE\ORACLE\ALL_HOMES', False) then
      begin
        strTemp := tmpReg.ReadString('LAST_HOME');
        if (strTemp <> '') and tmpReg.OpenKey('ID' + strTemp, false) then
        begin
          strTemp := tmpReg.ReadString('PATH');
          if strTemp <> '' then
          begin
            if strTemp[Length(strTemp)] = '\' then
              Delete(strTemp, Length(strTemp), 1);
            Result := strTemp;
          end;
        end;
        tmpReg.CloseKey;
      end;
    finally
      tmpReg.Free;
    end;
  end;

  procedure GetOracleList(ARegFileName: string);
  var
    tmpList: TStringList;
    i: integer;
    strRegName: string;
  begin
    //這里讀取的方法暫時比較簡單,該文件寫法就要合理,否則讀取不到。
    //以后再看有無更好的方法
    if not FileExists(ARegFileName) then
      exit;
    tmpList := TStringList.Create;
    try
      tmpList.LoadFromFile(ARegFileName);
      for i := 0 to tmpList.Count - 1 do
        if (Pos('(', tmpList[i]) = 0) and (Pos(')', tmpList[i]) = 0) then
        begin
          strRegName := Trim(tmpList[i]);
          if strRegName <> '' then
          begin
            if strRegName[1] = '#' then
              Continue;
            while Pos('=', strRegName) > 0 do
              Delete(strRegName, Pos('=', strRegName), MaxInt);
            strRegName := Trim(strRegName);
            if strRegName <> '' then
              cboDatabaseName.Items.Add(strRegName);
          end;
        end;
    finally
      tmpList.Free;
    end;
  end;
begin
  cboDatabaseName.Items.Clear;
  strOracleHome := GetOracleHome;
  if strOracleHome <> '' then
    GetOracleList(strOracleHome + '\network\admin\tnsnames.ora');
end;

procedure TfrmExportBusinessData.cboDataBaseTypeChange(Sender: TObject);
begin
  if cboDataBaseType.ItemIndex = 1 then
  begin
    cboDataBaseName.Items.Clear;
    cboDataBaseName.Style := csSimple;
  end
  else
  begin
    cboDataBaseName.Style := csDropDownList;
    GetRegOracleServer;
  end;
  FDataAccess := nil;
end;

procedure TfrmExportBusinessData.cboDataBaseNameChange(Sender: TObject);
begin
  FDataAccess := nil;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女网站色| 蜜桃一区二区三区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美视频一区二区在线观看| 91成人在线免费观看| 色婷婷久久一区二区三区麻豆| 国产99久久精品| 国产精品一区二区免费不卡| 国产一区二区三区精品视频| 国产成人在线免费观看| 国产精品88av| k8久久久一区二区三区| 91麻豆精品在线观看| 欧美在线观看一区二区| 91精品国产综合久久精品app| 日韩一级片在线观看| www国产精品av| 中文字幕在线视频一区| 亚洲综合一区二区精品导航| 亚洲成人免费在线| 狠狠色丁香婷婷综合| 国产99久久久久| 欧美制服丝袜第一页| 欧美mv和日韩mv的网站| 国产精品国产精品国产专区不蜜| 一区二区三区欧美久久| 美女www一区二区| 岛国一区二区在线观看| 欧美性xxxxxx少妇| 久久丝袜美腿综合| 亚洲欧美乱综合| 极品尤物av久久免费看| 97精品国产97久久久久久久久久久久| 欧美三级韩国三级日本一级| 久久久精品免费网站| 亚洲一区在线观看视频| 韩国一区二区三区| 欧美性大战久久久久久久蜜臀| 日韩欧美电影在线| 亚洲一区在线免费观看| 国产精品中文字幕一区二区三区| 色8久久人人97超碰香蕉987| 精品欧美一区二区久久| 亚洲综合免费观看高清完整版在线| 蜜乳av一区二区三区| 91免费视频网址| 久久美女艺术照精彩视频福利播放| 亚洲女同女同女同女同女同69| 麻豆一区二区在线| 欧洲色大大久久| 国产精品丝袜91| 精品夜夜嗨av一区二区三区| 色视频欧美一区二区三区| 国产亚洲精品bt天堂精选| 午夜视频在线观看一区| 91麻豆免费看| 自拍偷拍亚洲综合| 丁香啪啪综合成人亚洲小说| 日韩视频在线你懂得| 亚洲激情成人在线| 99久久综合精品| 国产视频一区不卡| 国内精品视频666| 日韩午夜av一区| 免费看欧美女人艹b| 欧美最猛黑人xxxxx猛交| 亚洲欧洲国产专区| 国产99久久久久| 欧美国产禁国产网站cc| 国产福利不卡视频| 精品国产sm最大网站免费看| 久久精品国产秦先生| 欧美疯狂性受xxxxx喷水图片| 一区2区3区在线看| 欧美揉bbbbb揉bbbbb| 亚洲精品成a人| 欧美日韩一区高清| 日韩av网站在线观看| 欧美成人精品高清在线播放| 蜜桃一区二区三区在线观看| 精品嫩草影院久久| 国产真实精品久久二三区| 欧美精品一区二区三| 国产在线不卡一区| 久久天堂av综合合色蜜桃网| 国产不卡免费视频| 亚洲国产成人午夜在线一区| av影院午夜一区| 一区二区三区精密机械公司| 欧美日韩成人激情| 精品一区二区免费| 国产精品青草久久| 欧美亚洲一区二区三区四区| 免费久久99精品国产| 久久蜜桃av一区精品变态类天堂| 成人动漫一区二区| 亚洲香肠在线观看| 欧美va亚洲va在线观看蝴蝶网| 国产成a人亚洲精| 亚洲精品视频自拍| 日韩一区二区三区电影| 国产不卡视频一区二区三区| 亚洲午夜视频在线观看| 精品剧情v国产在线观看在线| 成人av网站在线观看免费| 亚洲黄色性网站| 欧美va在线播放| 一本到不卡精品视频在线观看| 丝瓜av网站精品一区二区| 久久亚洲综合色一区二区三区 | 美腿丝袜亚洲色图| 国产日韩成人精品| 欧美怡红院视频| 久久99精品久久久久久国产越南| 中文字幕中文字幕在线一区 | 成人一二三区视频| 亚洲成人动漫在线免费观看| 久久久久久久久久久久电影 | 粉嫩绯色av一区二区在线观看| 亚洲欧美日本韩国| 久久精品一区二区三区四区| 91福利视频网站| eeuss鲁片一区二区三区| 日韩不卡一区二区三区| 国产精品的网站| 久久精品一区二区三区不卡| 欧美日韩精品是欧美日韩精品| 国产成人精品亚洲777人妖 | 久久久噜噜噜久久中文字幕色伊伊| 91最新地址在线播放| 国产精品自拍三区| 老司机午夜精品99久久| 午夜精品一区二区三区免费视频 | 欧美精品 国产精品| 99精品视频一区| 成人在线综合网| 国产福利一区二区| 免费xxxx性欧美18vr| 午夜不卡av免费| 一区二区三区日本| 亚洲精品乱码久久久久久黑人| 欧美国产一区视频在线观看| 欧美大白屁股肥臀xxxxxx| 欧美精品在线观看播放| 欧美日韩精品一区二区三区| 91黄色免费版| 色94色欧美sute亚洲13| 91精品福利在线| 在线一区二区视频| 91福利在线观看| 一本大道综合伊人精品热热| 色视频一区二区| 欧美日韩一区精品| 欧美精品久久一区二区三区| 欧美日韩黄色影视| 91精品久久久久久蜜臀| 日韩一区二区三区在线视频| 欧美一级欧美三级| 精品欧美一区二区三区精品久久| 精品久久久久久无| 久久久久99精品一区| 亚洲国产高清在线| 亚洲男女一区二区三区| 亚洲一区二区中文在线| 日韩在线一区二区三区| 激情综合五月天| 国产精品亚洲视频| 99久久久国产精品免费蜜臀| 91女厕偷拍女厕偷拍高清| 欧美日韩精品高清| 日韩精品一区二区三区在线播放| 亚洲精品一线二线三线| 国产日韩高清在线| 亚洲精品成人在线| 男男gaygay亚洲| 国产69精品久久久久777| 91在线码无精品| 在线播放/欧美激情| 国产亚洲一区二区在线观看| 亚洲人成小说网站色在线| 亚洲一区视频在线观看视频| 免费日本视频一区| 波多野结衣在线一区| 在线欧美日韩精品| 精品入口麻豆88视频| 国产精品天美传媒沈樵| 天天综合网天天综合色| 国产成人精品三级麻豆| 欧美日本精品一区二区三区| 久久久久久夜精品精品免费| 亚洲精品乱码久久久久久| 国内欧美视频一区二区| 在线观看亚洲专区| 久久久久久久综合日本| 亚洲午夜电影在线观看| 国产精品正在播放| 欧美高清性hdvideosex| 亚洲美女一区二区三区| 国产在线精品免费av| 制服丝袜亚洲色图|