Access的ODBC驱动程序需要单独下载吗
我用的是ACCESS2003,就是我的程序在别的机器上运行的时候,必须把数据库放在原来存放的位置才能正常运行(是在VC环境下使用MFC ODBC访问数据库的),这样别人安装此程序路径是随意我的程序就不能运行,求大侠帮忙解决。。。。。。 展开
不需要单独下载。
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
使用方法如下:
一、点击开始-管理工具-数据源。(若不能找到就去控制面板找到管理工具就可以发现数据源)
二、出现ODBC管理器,里面有用户系统还有文件DSN.
这三者区别是:
1.用户DSN允许单个用户在单个计算机上访问数据库(一对一);
2.系统DSN允许在某个计算机上的多个用户访问数据库(一机多用);
3.文件DSN在一个以.DSN扩展名结尾的文本文件中存储相关信息,并且可以被安装了相同驱动器的不同计算机上的多个用户共享。
三、找到安装oracle驱动程序。
四、填写数据源名称。这名称自己定。但服务器填写就要根据oracle配置服务名。
五、打开ACCESS,在对象-表-点击新建链接表。
六、在弹出文件框,在文件类型里选择ODBC数据库。
七、点击机器数据源-选择刚才设的数据源oracle。
八、就会弹出odbc登录对话框。输入登录账户密码。确认即可。
九、选择想链接表。可以一次性选多个表。
十、在Access就可以看到所要链接的表。
用BUILDCONNECTIONSTRING得到字符串做为连接
另外可以在作安装程序时,生成一个ODBC也行
这个答案是我的解决方法,我也不满意的,期待高手。。。
参考资料: 图书馆查书
...
GetModuleFileName(NULL, szPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
nPos=szPath.ReverseFind('\\');
szPath=szPath.Left(nPos);
CString szFile = szPath + "\\rppg.mdb";
CString szDesc;
BOOL r;
szDesc.Format("DSN=%s;DBQ=%s;DEFAULTDIR=%s", "rppg", szFile, szPath);
r=SQLConfigDataSource(NULL, ODBC_ADD_DSN,
"Microsoft Access Driver (*.mdb)", szDesc);
if(!r)
{
AfxMessageBox("配置DSN错误");
return FALSE;
}
...