最近在做一个兼职,涉及到利用vc连接mdb数据库的问题。

先介绍一下第一种方法:

_ConnectionPtr m_pConnection; CoInitialize(NULL); //对连接进行初始化 m_pConnection.CreateInstance(__uuidof(Connection)); try { m_pConnection->Open(_T("Provider=Microsoft.JET.OLEDB.4.0;Data Source=test.mdb"),_T(""),_T(""),adModeUnknown); //AfxMessageBox(_T("数据文件读写成功!")); return 1; } catch(_com_error e) //捕捉异常 { e.Description(); MessageBox(_T("数据库连接失败,确认数据库data.mdb是否在当前路径下!!")); return 0; }

test.mdb只需要放在工程目录下即可运行成功。

但这个程序有点问题,我再加上密码的时候就出问题了,始终连接失败,我也不是很清楚原因,猜测是数据源的问题或者用户名吧。

于是产生了第二种方法,其实归根结底是一种方法,都是ado的方法,但这个程序我加上密码很容易就成功了。

_ConnectionPtr m_pConnection; CoInitialize(NULL); //对连接进行初始化 m_pConnection.CreateInstance(__uuidof(Connection)); try { m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Jet OLEDB:DataBase Password=123456;Mode=Share Deny Read|Share Deny Write","","",0); return 1; } catch(_com_error e) //捕捉异常 { e.Description(); MessageBox(_T("数据库连接失败,确认数据库data.mdb是否在当前路径下!!")); return 0; }

至此,如果test.mdb放在生成的exe文件夹下,运行exe就可以连接成功了。

这个方法也有它的弊端,第一种方式允许多次连接,即使未关闭上一次连接;第二种就不行了,只能连接一次,如果多次连接将会报错。

=========================传说中的分割线=============================

下面再介绍下采用mdb数据库读取数据的方法:

try{ _RecordsetPtr rs; sql= "select * from test where datevalue(ttime) = #"+date1+"#"; rs->Open(_com_util::ConvertStringToBSTR(sql), m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针 adOpenDynamic, adLockOptimistic, adCmdText); }catch(_com_error e) {}

此时,sql语句执行成功,结果返回在rs中。

要用的时候直接用下列语句取就可以了:

(char*)_bstr_t(rs->GetCollect("ttime"))

注意到前面加了部分用来转换类型的,最终产生的是char * 类型。

VC中连接mdb数据库及其数据读取方法相关推荐

  1. oledb vc访问mdb数据库_VC中连接mdb数据库及其数据读取方法

    最近在做一个兼职,涉及到利用vc连接mdb数据库的问题. 先介绍一下第一种方法: _ConnectionPtr m_pConnection; CoInitialize(NULL); //对连接进行初始 ...

  2. Android中连接MySql数据库获取数据的简单实现

    文章目录 背景 demo布局 导入jar包 demo代码实现 权限设置 应用运行的结果 背景 一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的.但是今天我们就来尝试实现 ...

  3. 具体解释VB中连接access数据库的几种方法

    在VB中,连接ACCESS数据库的方法主要有以下三种 使用ADO对象,通过编写代码訪问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件高速创建数据库连接 有三种连接方法 ...

  4. 详解VB中连接access数据库的几种方法

    在VB中,连接ACCESS数据库的方法主要有下面三种 使用ADO对象,通过编写代码访问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件快速创建数据库连接 有三种连接方法 ...

  5. #arcgis 中无法连接mdb数据库解决方法

    #arcgis 中无法连接mdb数据库解决方法 最近看到部分人使用arcgis过程中出现无法连接mdb数据库或者是无法创建mdb数据.具体出现如图所示情况:连接到数据库失败:无法创建新的数据库,权限被 ...

  6. java web access_Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  7. JSP连接SQL数据库实现数据分页显示

    <%@ page contentType="text/html; charset=gb2312" %> <%@ page language="java& ...

  8. go语言服务器连接mysql,golang中连接mysql数据库

    golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...

  9. VC++中对文件的写入和读取

    VC++中对文件的写入和读取 本文介绍两种方法对文件进行读取和写入操作:1.采用fstream类:2.采用CStdioFile类. CStdioFile继承自CFile,一个CStdioFile对象代 ...

最新文章

  1. sonarqube使用教程
  2. gbdt 算法比随机森林容易_用Python实现随机森林算法
  3. 无法读取源文件或磁盘_禁用格式化磁盘操作 保护电脑文件安全防止删除
  4. 临近年关,发生两起磁盘占满引发的服务下线故障
  5. Java中含有泛型的 JSON 反序列化问题
  6. JAVA提示定义常量_如何在Java中定义常量(Constant)
  7. 帆软9.0动态列之解决动态列的分组统计问题
  8. java中String类和StringBuffer类实例详解
  9. 好用的 windows10 软件推荐
  10. java中的约瑟夫问题_java实现约瑟夫问题
  11. 推荐一款好用的在线json格式化工具
  12. 手把手带你入门 Spring Security
  13. User requirement
  14. 概率论-小记录(矩估计)
  15. 3225 十进制到六进制
  16. JS对象基础-怎么理解对象
  17. 计算机网络(6)应用层
  18. ecs云服务器上传文件,ECS文件传输
  19. 黑马程序员————高新技术————类加载器
  20. 设计一个动物声音“模拟器”

热门文章

  1. es-03-DSL的简单使用
  2. Oracle移除表空间的数据文件 ora-00604 ora-01426
  3. 微信小程序怎么确定是息屏、返回、还是Home键操作?
  4. Maven 项目关于 plexus-utils:jar的错误解决
  5. js中值得推荐的Memoization
  6. django orm 数据查询详解
  7. QQ各等级所需在线时长明细表
  8. 忍不住了, 和大家聊聊怎么写简历吧, 关于简历的深度思考
  9. Binary classification - 聊聊评价指标的那些事儿【回忆篇】
  10. Mysql_多表查询练习