查看文章
 
解决c++ builder 2009 创建 access数据库的问题
2009-05-10 20:41

刚换用c++ builder 2009,不大熟悉,加上网上有关这方面的资料也比较少,现有的创建access的mdb数据库的方法都是bcb6的,直接用在c++ builder 2009上会出错。想了两个简单的方法来绕过去,第一种方法是copy法,把一个空的库随程序一起发布,需要创建库的时候直接拷贝一个,改改名字就可以了,这种方法好处是简单,但是也比较笨。另外一个方法是利用bcb创建库的代码创建一个dll,在c++ builder 2009调用这个dll就可以动态生成mdb的库了。创建方法:

1、用bcb6的dll wizard默认创建一个dll

2、cpp代码

extern "C" __declspec(dllexport) int createDb(char* dbFile,unsigned int len);
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    return 1;
}
//---------------------------------------------------------------------------
int createDb(char* dbFile,unsigned int len)
{
    OleInitialize(NULL);
    AnsiString dbName(dbFile,len);
    Variant vCreateAccess;
    Procedure PCreateAccess("Create");
    PCreateAccess << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbName;
    vCreateAccess = CreateOleObject("ADOX.Catalog");
    vCreateAccess.Exec(PCreateAccess );
    OleUninitialize();
    return 0;
}

头文件

#ifndef H_CREATEDB_H__
#define H_CREATEDB_H__
extern "C" __declspec(dllexport) int createDb(char* dbFile,unsigned int len);
#endif


类别:c++ builder||添加到搜藏 |分享到i贴吧|浏览(271)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu