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

相关文章

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

MySQL ORDER BY 语句常见用法、示例详解

《MySQLORDERBY语句常见用法、示例详解》ORDERBY是结构化查询语言(SQL)中的关键字,隶属于SELECT语句的子句结构,用于对查询结果集按指定列进行排序,本文给大家介绍MySQL... 目录mysql ORDER BY 语句详细说明1.基本语法2.排序方向详解3.多列排序4.常见用法示例5.

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八