创建一个MDB文件

昨天令狐说需要用到Access数据库,又不想装Office,在群里征求办法。

我建议的办法是用DELPHI/BCB自带的SQL Explorer通过BDE over ODBC连接Access数据库,这样就可以修改库结构,及使用SQL语句进行大部分数据库操作。

但是有一个问题就是不能创建一个空的数据库文件,只能连接已有的MDB文件。

不过这个问题好解决,用ADOX不过是几行代码的问题,如果会VBS当然最好,MSDN里有现成的代码,可惜偶不会,只好拿TCX写了一个:

void CreateMDB( AnsiString sFileName )
{
// from MSDN
// Create Method Example (VB)
// The following code shows how to create a new Microsoft Jet database with the Create method.
Variant adoCat;
WideString connStr = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='"
+ sFileName + "'";
Procedure createCat( "Create" );

CoInitialize( NULL );
adoCat = Variant::CreateObject( "ADOX.Catalog" );
adoCat.Exec( createCat << connStr );
CoUninitialize( );
}

如果用DELPHI写,这个代码会更简单,因为DELPHI在编译器一级扩展了"."运算符的功能,不像TCX需要保持C++的语法不变。

完整的代码及编译好的程序在这里下载:直接下载