博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC++ ADO开发实践之三 (转)
阅读量:2496 次
发布时间:2019-05-11

本文共 1737 字,大约阅读时间需要 5 分钟。

VC++ ADO开发实践之三 (转)[@more@]

在Visual C++中如何利用UDL来建立ADO连接 

 
  使用通用数据连接文件(*.UDL,以下简称文件)来创建ADO连接,可以和OC一样可视化地定义要连接的数据源,从而实现数据访问的透明性。

1.使用UDL文件来创建ADO连接
创建ADO的连接,首先要设置ADO连接的ConnectionString属性,该属性提供所要连接的类型、数据所处、要访问的数据库和数据库访问的信息。比较专业的方法是在ConnectionString中直接提供以上信息,下面是访问不同类型数据源设置ConnectionString的标准:
访问ODBC数据
"Provr=MSDA;DSN=dsnName;UID=userName;PWD=userPass;"
访问数据库
"Provider=MSDAORA;Data =serverName;User ID=userName; Password=userPassword;"
访问MS SQL数据库
"Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName; User ID=userName;Password=userPassword;"
访问ACCESS 数据库
"Provider=.Jet.OLEDB.4.0;Data Source=databaseName;User ID=userName;Password=userPassword;"
上述的连接属性设置标准随着数据源的类型不同而变化,常常不习惯这种设置方式,都希望有可视化的数据源设置方法。为此Microsoft提供了通用数据连接文件(.UDL)来建立和测试ADO连接属性。ADO连接对象可以很方便地使用UDL文件来连接数据源,下面例子使用my_data1.udl来创建ADO连接。
_ConnectionPtr m_pDBConn;
m_pDBConn.CreateInstance(__uuidof(Connection));
m_pDBConn->ConnectionString ="File Name=c:mydirmy_data1.udl";
m_pDBConn->Open("","","",NULL);
这样一来无论数据源如何变化,在软件中都可以用统一的方法。当数据源改变时,只要双击相应的udl文件即可可视化地设置数据源,无需更改软件。
因为ADO是COM接口,为了软件的可靠性,打开ADO连接时,可以加入异常处理代码。
try{
m_pDBConn->Open("","","",NULL);
}catch(_com_error &e){
//处理异常的代码
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
m_pDBConn=NULL;
}
因为_ConnectionPtr m_pDBConn是智能指针,应在处理异常代码时将智能指针设为NULL后将自动将引用计数降为0。
如果不出现异常,只要在使用完m_pDBConn,只要引用Close方法即可。
2.创建你所需的UDL文件
在你所想创建UDL文件的目录中单击右键,选择从菜单 新建|Microsoft 数据连接,然后将新创建的UDL文件更改为你所希望的文件名(.UDL扩展名不能改变)。
注:如果操作是Window 2000,先创建一个文本文件,再将该文本文件的扩展名改为 "udl"。
然后双击所创建的UDL文件,即可视化地完成数据源的设定。
使用UDL文件必须在系统中先Microsoft MDAC,Win 98第二版,Win 2000中都自动包含了该,需要该组件最新版本时可以到Microsoft网站去。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-963060/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-963060/

你可能感兴趣的文章
繁星——JQuery选择器之层级
查看>>
邮件发送
查看>>
LumiSoft.Net 收发邮件
查看>>
通过SQL语句直接实现Excel与数据库的导入导出
查看>>
jenkins-小知识点
查看>>
visio二次开发——图纸解析
查看>>
如何在Windows Mobile下使用.NET Compact Framework画透明图片
查看>>
App后台开发架构实践笔记
查看>>
Set集合中的treeSet问题:cannot be cast to java.lang.Comparable;
查看>>
LeetCode-Maximum Product Subarray-最大乘积子数组-情况判断
查看>>
支付渠道路由系统进化史
查看>>
计算机领域会议和期刊
查看>>
shell 获得后台进程返回值
查看>>
python 多线程_thread
查看>>
SpringBoot2.0 + SpringCloud Eureka搭建高可用注册中心(Eureka之三)
查看>>
vue.js 组件-全局组件和局部组件
查看>>
svn 分支与合并的使用
查看>>
intellj idea
查看>>
浮动(clear)
查看>>
HierarchicalDataTemplate
查看>>