⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 Msaccess 転換成 Bcon, 使用Delphi 編寫COM Msaccess 転換成 Bcon, 使用Delphi 編寫COM
💻 PAS
字号:
unit Unit1;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, ActiveX, Classes, ComObj, Prj_MDB2BCon_TLB, StdVcl,
  DB, ADODB, // ADO
  DBClient,  // ClientDataSet
  Provider,  // DataSetProvider
  SysUtils;  // FreeAndNil

type
  TMDB2BCon01 = class(TTypedComObject, IMDB2BCon01)
  Private
    FMDBFileName, FMDBTableName, FBConFileName: String;
    acMDB: TADOConnection;
    ADOTable1: TADOTable;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
  protected
    function ConvertBCon: HResult; stdcall;
    function SetBConName(const Param1: WideString): HResult; stdcall;
    function SetMDBFileName(const Param1: WideString): HResult; stdcall;
    function SetMDBTableName(const Param1: WideString): HResult; stdcall;
    {Declare IMDB2BCon01 methods here}
  end;

implementation

uses ComServ, Dialogs;

function TMDB2BCon01.ConvertBCon: HResult;
const
  ADOConnSTR = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
begin
  acMDB:= TADOConnection.Create(nil);
  acMDB.LoginPrompt:= False;
  ADOTable1:= TADOTable.Create(nil);
  DataSetProvider1:= TDataSetProvider.Create(nil);
  ClientDataSet1:= TClientDataSet.Create(nil);
  try
     acMDB.ConnectionString:= ADOConnSTR+ FMDBFileName+ ';Persist Security Info=False';
     ADOTable1.Connection:= acMDB;
     ADOTable1.TableName:= FMDBTableName;
     ADOTable1.Open;
     DataSetProvider1.DataSet:= ADOTable1;
     ClientDataSet1.SetProvider( DataSetProvider1);
     ClientDataSet1.open;
     ClientDataSet1.FetchDetails;
     ClientDataSet1.SaveToFile( FBConFileName ,dfBinary);
     //ShowMessage('MDBFileName='+ FMDBFileName+'  BConFileName='+ FBConFileName +' Convert ok! ');
  finally
    ClientDataSet1.Close;
    ClientDataSet1.Free;
    DataSetProvider1.Free;
    ADOTable1.Close;
    FreeAndNil(ADOTable1);
    acMDB.Close;
    FreeAndNil(acMDB);
  end;
  Result:= 0;
end;

function TMDB2BCon01.SetBConName(const Param1: WideString): HResult;
begin
  FBConFileName:= Param1;
  Result:= 1;
end;

function TMDB2BCon01.SetMDBFileName(const Param1: WideString): HResult;
begin
  FMDBFileName:= Param1;
  Result:= 1;
end;

function TMDB2BCon01.SetMDBTableName(const Param1: WideString): HResult;
begin
  FMDBTableName:= Param1;
  Result:= 1;
end;

initialization
  TTypedComObjectFactory.Create(ComServer, TMDB2BCon01, Class_MDB2BCon01,
    ciMultiInstance, tmApartment);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -