ADOX-创建Access数据库

本文介绍如何使用Delphi检查系统中Microsoft DataAccess Components (MDAC) 的安装状态及其版本,并通过ADOX组件创建一个新的Microsoft Access数据库。
摘要由CSDN通过智能技术生成

{$R *.dfm}

uses Registry,ComObj;

//ADO是微软提供的可以访问数据库的一种接口方式,要使用ADO必须安装MDAC(Microsoft Data Access Components)组件

procedure TForm1.Button1Click(Sender: TObject);

var Reg:TRegistry;

AccessDB:OleVariant;

//VariantOLeVariant的区别:

//VariantDelphi内部使用,如果涉及和外部程序、特别是与用其它语言开发的程序交换数据,最好用OleVariant

DBName:String;

begin

//先判断MDAC是否已安装及获取其版本号

Reg:=TRegistry.Create;

Reg.RootKey:=HKey_local_Machine;

if Reg.OpenKey('\SoftWare\Microsoft\DataAccess',False) then

   begin

     //Showmessage(Reg.ReadString('FullInstallVer')); 找到该项表明已安装MDAC(微软的解释)

     MessageDlg('MDAC Installed! Version:'+Reg.ReadString('Version'),mtInformation,[mbOK],0);

   end

else

   begin

     MessageDlg('MDAC Not Installed.',mtError,[mbOK],0);

     Exit;

   end;

Reg.CloseKey;

Reg.Free;

DBName:='f:\test.mdb';

if SysUtils.FileExists(DBName) then  SysUtils.DeleteFile(DBName);

try

  AccessDB:=ComObj.CreateOleObject('ADOX.CataLog');

  AccessDB.Create('Provider=Microsoft.Jet.OleDB.4.0;Data Source='+DBName);

  AccessDB:=Null;

except

  MessageDlg('Create Access Failure,',mtError,[mbOK],0);

end;

end;

vc++利用ADOX创建数据库 // ADOXCreateDatabaseDlg.cpp : implementation file // #include "stdafx.h" #include "ADOXCreateDatabase.h" #include "ADOXCreateDatabaseDlg.h" #include "Shlwapi.h" #pragma comment(lib,"shlwapi.lib") // Download by http://www.codefans.net #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CADOXCreateDatabaseDlg dialog CADOXCreateDatabaseDlg::CADOXCreateDatabaseDlg(CWnd* pParent /*=NULL*/) : CDialog(CADOXCreateDatabaseDlg::IDD, pParent) { //{{AFX_DATA_INIT(CADOXCreateDatabaseDlg) m_dbName = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CADOXCreateDatabaseDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CADOXCreateDatabaseDlg) DDX_Text(pDX, IDC_DBNAME, m_dbName); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CADOXCreateDatabaseDlg, CDialog) //{{AFX_MSG_MAP(CADOXCreateDatabaseDlg) ON_WM_SYSCOMM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值