VC 利用UDL文件建立ADO连接 常见错误

2023-10-18 08:10

本文主要是介绍VC 利用UDL文件建立ADO连接 常见错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考链接:http://www.vckbase.com/index.php/wv/82

参考文献:百度百科

 

1、如何创建UDL文件

     新建1个txt文件,修改后缀名为 .udl,保存,无视警告!

     双击这个udl文件,弹出udl文件配置对话框,配置方法如下:

配置通用数据链接 (.udl) 文件
1.双击通用数据链接 (.udl) 文件。
“数据链接属性”对话框打开,显示以下选项卡:“提供者”、“连接”、“高级”和“所有”。选择“下一步”在选项卡中定位。
2.在“提供者”选项卡上,选择数据库提供程序。
3.在“连接”选项卡上,或者选择可用提供程序的 数据源名称 (DSN),或者输入自定义连接字符串。系统中预定义的提供程序的有效 DSN 显示在“使用 数据源”下拉列表中。
4.使用“高级”选项卡查看并设置数据的其他初始化属性。
5.使用“所有”选项卡复查并编辑可用于 OLE DB 提供程序的所有 OLE DB 初始化属性。
6.选择“确定”以便将连接字符串保存到通用数据链接 (.udl) 文件中。
有关更多信息,请参见“数据链接属性”对话框。
数据链接文件格式
通用数据链接 (.udl) 文件的前两行必须与此内容完全相同:
[oledb]
; Everything after this line is an OLE DB initstring
在这两个必需的行之后,.udl 文件的其余部分由用同样格式写成的连接字符串组成。当从编程代码中打开数据库时使用该字符串。下面的列表给出了一个 .udl 文件的完整文本,此文件使用 Microsoft SQL Server 的 OLE DB 提供程序打开使用集成安全性的 Northwind 数据库。
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Persist Security Info=False;Data Source=a-iresmi2000;Initial Catalog=Northwind;Integrated Security=SSPI
2、如何在VC中动态连接数据库?
下面例子使用my_data1.udl来创建ADO连接。
1. _ConnectionPtr m_pDBConn;
2.    
3. m_pDBConn.CreateInstance(__uuidof(Connection));
4.    
5. m_pDBConn->ConnectionString ="File Name=c:\mydir\my_data1.udl";
6.    
7. m_pDBConn->Open("","","",NULL);
 
或直接使用:
m_pConnection->Open(L”File Name=D:\\vc\\MyConn.udl”,L”",L”",-1); (不要这样用!!!会出错!详见下面的错误解释)

这样一来无论数据源如何变化,在软件中都可以用统一的方法编程。当数据源改变时,只要双击相应的udl文件即可可视化地设置数据源,无需更改软件。

建议完整的代码如下:

// 4、利用ADO Connection 对象 连接数据库

//连接指针
 _ConnectionPtr m_pConnection;
 if (m_pConnection)
 {
  if(m_pConnection->GetState() != adStateClosed)
  {
   m_pConnection->Close();      // 检查机制
  }
 }
 else
 {
  ::MessageBox(NULL,"错误信息: Connection对象为空", "错误 ",MB_ICONEXCLAMATION);
  return FALSE;
 }
 
 try                 // 异常机制
 {
   m_pConnection->ConnectionString = "File Name=.\\JunJunConnection.udl";
   m_pConnection->Open("", "", "", NULL);
 }
 catch(_com_error &e)
 {
  CString strComError;
  strComError.Format( "错误编号:   %08lx\n错误信息:   %s\n错误源:   %s\n错误描述:   %s ",
   e.Error(),          //   错误编号
   e.ErrorMessage(),       //   错误信息
   (LPCSTR)   e.Source(),     //   错误源
   (LPCSTR)   e.Description());   //   错误描述  
  ::MessageBox(NULL,strComError, "PressureMonitor错误 ",MB_ICONEXCLAMATION);
  return   FALSE;
 }

 return TRUE;

 

3、为什么我按照上面的方法设置了,在运行软件的时候仍然连接不上呢?

错误1:

错误原因:你的程序没有找到你所指定的udl文件,解决方法:1、确认你的udl路径和实际文件位置;2、不要用m_pConnection->Open(L”File Name=D:\\vc\\MyConn.udl”,L”",L”",-1);

 

错误2:

解决办法:把绝对路径换成相对路径,具体就是把你的udl文件放到你软件的当前目录下,然后修改路径为

m_pConnection->ConnectionString = "File Name=.\\JunJunConnection.udl";

 

这篇关于VC 利用UDL文件建立ADO连接 常见错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231314

相关文章

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO