MFC连接数据库的问题

看到很多教程上写,用这样的方式连接:#import"c:\programfiles\commonfiles\system\ado\msado15.dll"\no_name... 看到很多教程上写,用这样的方式连接:
#import "c:\program files\common files\system\ado\msado15.dll"\
no_namespace rename("EOF","adoEOF")
我有个疑问,如果用户电脑系统盘是D盘怎么办,无法智能识别?

第二个问题,在实际项目中,MFC操作SQL SERVER 2000这样的数据库,究竟是如何操作的,希望各位朋友给出代码或者实例。
如果有实际项目代码就更好了,如果有实际项目的源代码,可以发送到:
p523399@sina.com,谢谢大家。

再次感谢大家的帮助。

如果有其他看法和建议,也欢迎提出来。。。
各位朋友,感谢大家的回答,目前我急需一份MFC中使用ADO来访问数据库的实际项目,
不知道哪位朋友能提供一下,发到我上面的邮箱中去,感激不尽。。。
展开
 我来答
stone_dongdong
2010-05-24 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1028万
展开全部
都没说到点子上。。。。

这个路径是你本地系统的路径,本地系统的dll文件在哪儿你就写哪儿。只有编译通过就行了。

生成的可执行程序,移植到别的电脑运行的时候,并不是搜索这个路径去查依赖的dll,而是通过当前系统的注册表来查找 com接口,com接口的描述上记录了本地注册的msado15.dll所在路径,然后装入执行的。

这个就是com的独特之处了,跟一般的dll依赖不一样
百度网友61311ba
2010-05-23 · TA获得超过882个赞
知道小有建树答主
回答量:1386
采纳率:0%
帮助的人:878万
展开全部
印象里 那个路径是本机的路径,

1.ado组件是注册组件
程序便宜完毕后,在一般机器中访问对应com不会有问题.

2.实际项目中,我见过的多数数据库操作
分两种:一个是旧的ODBC连接,用的是API,另外个就是ado用起来简单.
还1中oledb现在资料较少, 我也没细致研究.

有兴趣可以搜下ado数据库编程, 内容好多.

至于MFC里面的数据库类, 见用的少.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
10号upup
2010-05-24 · TA获得超过269个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:0
展开全部
CString sql;
sql.Format("select *from Users where UserName='%s'",m_username);//编写sql语句
ADOConn m_AdoConn;
_RecordsetPtr m_pRecordset;
try
{
if(m_AdoConn.m_pconnection==NULL)
m_AdoConn.OnInitADOConn();
m_pRecordset=m_AdoConn.m_pconnection->Execute((_bstr_t)sql,NULL,adCmdText);//执行sql语句
}
catch (_com_error e)
{
MessageBox("执行失败");
return;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a2c7f1d
2010-05-22 · TA获得超过276个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:251万
展开全部
楼上说错了,这个C盘指的是你自己的机器的系统路径,只要你的系统盘是C盘,编译成exe之类的拿到用户那去,不管他的系统盘是哪个程序都能跑起来的。
给你发了个原来练手的程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12284aa
2010-05-24
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
1)、引入ADO类
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
(2)、初始化COM
在MFC中可以用AfxOleInit();非MFC环境中用:
CoInitialize(NULL);
CoUnInitialize();
(3)#import 包含后就可以用3个智能指针了:_ConnectionPtr、_RecordsetPtr和_CommandPtr
1.连接和关闭数据库 (1)连接
例子:连接Access数据库
AfxOleInit();//初始化
HRESULT hr;
try
{
hr = m_pConnection.createInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout = 0;
hr = m_pConnection->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb", "", "", adModeUnknown);
//m_pConnection->PutDefaultDatabase ((_bstr_t)"DB");//设置默认数据库

m_pCommand.createInstance(__uuidof(Command));
m_pCommand->CommandTimeout = 5;
m_pCommand->ActiveConnection = m_pConnection;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
望穿秋水待伊人
2010-05-22 · TA获得超过644个赞
知道小有建树答主
回答量:708
采纳率:100%
帮助的人:803万
展开全部
那个import语句本来指的就是系统 盘下的路径,如果系统盘不在C盘就在系统 盘目录下找个那个dll文件,然后包含进去就行了
对数据库操作其实也很简单,你可以看下孙鑫的C++视频教程,共二十章,最后一章就讲有数据库连接,那上面讲的很通俗易懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式