在Visual C++中如何利用UDL文件来建立ADO连接
在Visual C++中如何利用UDL文件来建立ADO连接
使用通用数据连接文件(*.UDL,以下简称文件)来创建ADO连接,可以和ODBC一样可视化地定义要连接的数据源,从而实现数据访问的透明性。
1.使用UDL文件来创建ADO连接
创建ADO的连接,首先要设置ADO连接对象的ConnectionString属性,该属性提供所要连接的数据库类型、数据所处服务器、要访问的数据库和数据库访问的安全认证信息。比较专业的方法是在ConnectionString中直接提供以上信息,下面是访问不同类型数据源设置ConnectionString的标准:
访问ODBC数据
"Provider=MSDASQL;DSN=dsnName;UID=userName;PWD=userPassword;"
访问ORACLE数据库
"Provider=MSDAORA;Data Source=serverName;User ID=userName; Password=userPassword;"
访问MS SQL数据库
"Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName; User ID=userName;Password=userPassword;"
访问ACCESS 数据库
"Provider=Microsoft.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:\mydir\my_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文件,即可视化地完成数据源的设定。
引用来自 : http://blog.pfan.cn/lhlvc/34853.html
转载于:https://www.cnblogs.com/boobuy/archive/2012/12/23/2830430.html
在Visual C++中如何利用UDL文件来建立ADO连接相关推荐
- 【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )
文章目录 一.报错信息 二.解决方案 1.NDK 的三个头文件路径 2.与 CPU 架构相关 asm 头文件路径选择 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( ...
- Visual Studio 中使用万能头文件 #include <bits/stdc++.h>
Visual Studio 中使用万能头文件 #include 前言 最近开始使用VS,之前用的DEV C++软件可直接使用 #include <bits/stdc++.h> ,但VS中并 ...
- GPT问答:在Ubuntu系统中,利用QtCreator的QSqlQuery语句,连接到其他目录的mission_history.db数据库,并将其中的名为 mission 表单,以xls格式导出
问题原文: 麻烦实现一下,在Ubuntu系统中,利用QtCreator的 QSqlQuery语句,连接到其他目录的mission_history.db 数据库,并将其中的名为 mission 表单,以 ...
- Masm32多模块程序设计:1、掌握利用LINK将多模块连接起来的方法 2、掌握利用库文件将多模块连接起来的方法。
程序使用原代码 实验实验源代码请点击这里 1.掌握利用LINK将多模块连接起来的方法 设计代码如下: ;//主程序,主程序,主程序,主程序,主程序,主程序,主程序,主程序,主程序,主程序,主程序,主程 ...
- 比较Visual Studio中的两个文件
本文翻译自:Compare two files in Visual Studio I saw new comparsion tool in VS 2012 for comparing two file ...
- Visual Studio 中使用万能头文件 #include bits/stdc++.h
进行各种练习赛后,看题解代码时经常会看到这么一个陌生的头文件 #include <bits/stdc++.h> ,这个头文件是一个C++万能头文件,里面包含了程序比赛中所有可能用到的头文件 ...
- 试试Visual Studio中新的远程文件查看器
今天,我们很高兴地宣布,在 Visual Studio 17.6 Preview 1 中,一项新的工具窗口诞生:远程文件查看器. 通过这个工具窗口,你可以从远程计算机上浏览,上传和下载文件.另外,可以 ...
- 【错误记录】Visual Studio 中配置 NDK 头文件路径
文章目录 一.报错信息 二.解决方案 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Mak ...
- winerror 10053 python_Django ConnectionAbortedError:[WinError 10053]主机计算机中的软件中止了已建立的连接...
我在postgresql中使用django,每当我试图保存或删除任何内容时,都会出现以下错误-Traceback (most recent call last): File "c:\prog ...
最新文章
- 谷歌最强 NLP 模型 BERT 解读
- JZOJ 5938. 【NOIP2018模拟10.30】分离计划
- mysql错误18456_【问题解决】SQL2008 SQL Server身份认证方式登录失败(错误18456)解决方法图解...
- Git branch 用法
- 集大成者 —— 荀子
- Spring源码之bean的加载(五)准备创建bean
- ArrayList常用函数
- matlab中fplot和ezplot,Matlab中plot、fplot、ezplot的使用方法和区别
- python简明编程_python编程最最简明教程
- 值得收藏的网站----安全
- BUUCTF:[WUSTCTF2020]girlfriend
- Centos 8.5系统优化方案
- Various Image/Video Caption(视觉字幕化新任务)
- 太一星晨解读:负载均衡设备究竟该如何选择?
- oracle误删了表怎么恢复数据,oracle误删除表或者表数据的恢复方法总结
- 联合证券|滴滴出行即日起恢复!A股嗨了!券商扛起领涨大旗
- 期刊论文发表能加分吗
- opencv实战——图像矫正算法深入探讨
- 关于微信小程序通讯录人名分组的实现
- 《网络安全》零基础教程-适合小白科普
热门文章
- 南京理工大学 计算机调剂科目,南京理工大学2019考研调剂信息
- 2023.2.9,周四【图神经网络 学习记录23】动态图算法 之 SGNN(DGNN):更新组件(update component),传播组件(propagation component)
- URP自定义屏幕后处理
- 腾讯视频QVL格式转MP4格式
- 2020知道走进故宫答案-----【快捷查询】
- python 使用 httpx 发送http2.0 请求
- 蒙特卡洛 股票 matlab,风险管理matlab蒙特卡洛模拟股票价格
- 机器人开发相关参考文档
- 克鲁斯卡尔算法生成最小生成树
- 关于Spring注解容器配置的那些事,掌握这几点,不再难!