关于odbc数据源动态加载

Runner111 2002-12-06 03:04:45
我现在想让用户不必手动添加数据源
我这么写的
char *szDriver = "Microsoft Access Driver(*.mdb)";
char *szAttributes =
"DSN=info\0DESCRIPTION=Microsoft Access Driver\0"
"FIL=MS Access\0"
"DBQ=E:\Database\info.mdb";
if(!SQLConfigDataSource(NULL,ODBC_ADD_DSN,szDriver,szAttributes))
{
AfxMessageBox("Can't add DSN!");
return 1;
}
但是不对,书上说szAttributes照着注册表里写就可以了。可是我就是照着写的呀?但是编译通过,却返回Can't add DSN!到底为什么呢?
...全文
26 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Runner111 2002-12-06
  • 打赏
  • 举报
回复
还是不能创建,最主要的是文件地址写在哪里???
1楼的,我试了把FileType改成Access? 不行 2楼的地址写在哪里?你说的这个和msdn说的一样,但是地址写在哪里还是不知道
fletcher 2002-12-06
  • 打赏
  • 举报
回复
char *遇到\0就当字符串结束啦这样吧
sprintf(szAttributes,"DSN=%s?DESCRIPTION=iNet Sample DSN?SERVER=(local)?ADDRESS=.?NETWORK=.?DATABASE=%s?Trusted_Connection=yes?",str,str);
int mlen = strlen(szAttributes);
for(int i = 0;i<mlen;i++){
if(szAttributes[i] == '?')
szAttributes[i] = '\0';
}
casinosun 2002-12-06
  • 打赏
  • 举报
回复
SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)",
"DSN=New Excel Data Source\0"
"Description=New Excel Data Source\0"
"FileType=Excel\0"
"DataDirectory=C:\\EXCELDIR\0"
"MaxScanRows=20\0");

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧