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来访问数据库的实际项目,
不知道哪位朋友能提供一下,发到我上面的邮箱中去,感激不尽。。。 展开
#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来访问数据库的实际项目,
不知道哪位朋友能提供一下,发到我上面的邮箱中去,感激不尽。。。 展开
展开全部
印象里 那个路径是本机的路径,
1.ado组件是注册组件
程序便宜完毕后,在一般机器中访问对应com不会有问题.
2.实际项目中,我见过的多数数据库操作
分两种:一个是旧的ODBC连接,用的是API,另外个就是ado用起来简单.
还1中oledb现在资料较少, 我也没细致研究.
有兴趣可以搜下ado数据库编程, 内容好多.
至于MFC里面的数据库类, 见用的少.
1.ado组件是注册组件
程序便宜完毕后,在一般机器中访问对应com不会有问题.
2.实际项目中,我见过的多数数据库操作
分两种:一个是旧的ODBC连接,用的是API,另外个就是ado用起来简单.
还1中oledb现在资料较少, 我也没细致研究.
有兴趣可以搜下ado数据库编程, 内容好多.
至于MFC里面的数据库类, 见用的少.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说错了,这个C盘指的是你自己的机器的系统路径,只要你的系统盘是C盘,编译成exe之类的拿到用户那去,不管他的系统盘是哪个程序都能跑起来的。
给你发了个原来练手的程序。
给你发了个原来练手的程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);///显示错误信息
}
#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);///显示错误信息
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那个import语句本来指的就是系统 盘下的路径,如果系统盘不在C盘就在系统 盘目录下找个那个dll文件,然后包含进去就行了
对数据库操作其实也很简单,你可以看下孙鑫的C++视频教程,共二十章,最后一章就讲有数据库连接,那上面讲的很通俗易懂
对数据库操作其实也很简单,你可以看下孙鑫的C++视频教程,共二十章,最后一章就讲有数据库连接,那上面讲的很通俗易懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询