我们在VC中通过odbc访问数据库的时候,我们总是在建好数据库后,再配置windows控制面板中的odbc才能使VC访问该数据库,现在我想在应用程序中直接实现此连接过程,也就是在应用程序初始化的时候,自动实现此过程,而先手动配置,我想应该会涉及到注册表的问题,可惜,我也是VC刚入门,请高手指点如何实现此过程,(最好附上源代码)并注明在哪里实现比较好一些.
解决方案 »
- 有关WIN7和WINXP图标显示差别的问题,急求大神解决
- 菜鸟程序员问一个感觉非常重要的问题
- 在Visual Studio .Net 2005 下为什么不能用ofstream来保存文件(在线等,急)
- ---急--- 请教,为什么我的UI速度显示那么慢啊!
- 在横秋,在相互..高手们,帮帮忙啊。动态创建的组合框咋就改不掉里面的字体呢?
- 我是用的对话框工程,怎样使用CStatusBar呀?
- 如何修改一个已有内容的流?
- 求助:对话框
- 那位兄弟做过股票数据接口?
- 急!急!怎么把pdf转成doc呀?我的分数都给了!62
- 关于ActiveX控件的注册出现的怪现象(100分相送)
- 如何用VC查询某程序运行时的基地址?如何模拟键盘操作?-----在线等待!!!
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",
"DSN=tablename\0DBQ=c:\\Database\\table.mdb\0DEFAULTDIR=c:\\Database\0\0");
函数成功后DSN就是平时我们在ODBC中设的数据源名称。
//同时,此函数需要头文件#include <odbcinst.h>支持
然后调用方式为:
CDatabase db;
db.Open(_T("tablename"));
CRecordset set(&db);
//table1是table文件中的一张表
set.Open(CRecordset::forwardOnly,"select * from table1");
//现在就可以用记录集set操作了
{
CString text;
CString datapath=XXX //你的数据文件目录 text.Format("ODBC;DRIVER=Microsoft Access Driver (*.mdb);UID=admin;PWD=;UserCommitSync=Yes;Threads=8;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL=MS Access;DriverId=25;DefaultDir=%s\\;DBQ=diary.dat;",datapath); return _T(text);
}