VS2013中MFC应用程序连access2013数据库“找不到所创建的数据库文件”?请大神指教!
答案:2 悬赏:50 手机版
解决时间 2021-01-02 06:07
- 提问者网友:我一贱你就笑
- 2021-01-01 10:07
我连接方式是ADO
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-01-10 05:23
建个模板用代码直接复制到指定路径就行了,或者把accdb文件读成二进制再转string,然后把string保存到代码中,生成accdb的时候直接从string中转二进制,然后在写到磁盘
全部回答
- 1楼网友:思契十里
- 2021-01-10 06:53
cdatabase::open;
virtual bool open
(
lpctstr lpszdsn,
bool bexclusive = false,
bool breadonly = false,
lpctstr lpszconnect = “odbc;”,
bool busecursorlib = true
);
throw( cdbexception, cmemoryexception );
参数含义:
lpszdsn指定了数据源名,在lpszconnect参数中也可包括数据源名,此时lpszdsn必需为null,若在函数中未提供数据源名且使lpszdsn为null,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源.
bexclusive说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是false,这说明数据源是被共享的.
breadonly若为true则对数据源的连接是只读的.
lpszconnect指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号(id)和口令等信息,字符串中的"odbc"表示要连接到一个odbc数据源上.
busecursorlib若为true,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库.
参考代码:
#include "afxdb.h"
cdatabase database;
cstring sdriver = "microsoft access driver (*.mdb)";
cstring sdsn;
cstring sfile = "c://works//readdb//test.mdb";//change path here
// create odbc connection dinamically
sdsn.format("odbc;driver={%s};dsn='';dbq=%s",sdriver,sfile);
// open the database
database.open(null,false,false,sdsn);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯