标题:MFC怎么实现ODBC连接ACCESS数据库,请各位指点?
只看楼主
love1234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-26
 问题点数:0 回复次数:5 
MFC怎么实现ODBC连接ACCESS数据库,请各位指点?
关于利用ODBC动态连接ACCESS数据库?
我的问题不知道行不行?请大家理解

我想通过ODBC远程连接ACCESS数据库,用MFC实现!
譬如,通过用户输入远程端的ip地址或者主机名和密码登陆,然后访问主机上ODBC设置好的数据源test.mdb


急着要,请各位高手帮个忙,谢谢!
搜索更多相关主题的帖子: ODBC MFC 数据库 ACCESS 主机 
2006-05-26 12:58
love1234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-26
得分:0 

有人么?

急呀

2006-05-26 20:17
love1234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-26
得分:0 

有人么?

急呀

2006-05-27 16:48
love1234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-26
得分:0 

有人么?

急呀

2006-05-30 12:32
funnnyhuang817
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-5-30
得分:0 
【2】用#import指令引入ADO类型库
我们在stdafx.h中加入如下语句:(stdafx.h这个文件哪里可以找到?你可以在FileView中的Header Files里找到)
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。

几点说明:
(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改
(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。
msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

【3】创建Connection对象并连接数据库
首先我们需要添加一个指向Connection对象的指针:
_ConnectionPtr m_pConnection;
下面的代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉。


BOOL CADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; }
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}

在这段代码中我们是通过Connection对象的Open方法来进行连接数据库的,下面是该方法的原型
HRESULT Connection15::Open ( _bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options )
ConnectionString为连接字串,UserID是用户名, Password是登陆密码,Options是连接选项,用于指定Connection对象对数据的更新许可权,
Options可以是如下几个常量:
adModeUnknown:缺省。当前的许可权未设置
adModeRead:只读
adModeWrite:只写
adModeReadWrite:可以读写
adModeShareDenyRead:阻止其它Connection对象以读权限打开连接
adModeShareDenyWrite:阻止其它Connection对象以写权限打开连接
adModeShareExclusive:阻止其它Connection对象打开连接
adModeShareDenyNone:允许其它程序或对象以任何权限建立连接

我们给出一些常用的连接方式供大家参考:
(1)通过JET数据库引擎对ACCESS2000数据库的连接

m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\test.mdb","","",adModeUnknown);

(2)通过DSN数据源对任何支持ODBC的数据库进行连接:
m_pConnection->Open("Data Source=adotest;UID=sa;PWD=;","","",adModeUnknown);


不知道对你有没帮助???
2006-05-30 15:07
love1234
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-26
得分:0 
xie xie!
2006-05-30 18:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-67362-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.775491 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved