最近在做一个兼职,涉及到利用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 * 类型。

版权声明:本文为博主原创文章,未经博主允许不得转载。

oledb vc访问mdb数据库_VC中连接mdb数据库及其数据读取方法相关推荐

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

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

  2. 如何在IDEA中连接mysql数据库

    补充说明下,本篇博文连接数据库,只是将IDEA作为一个Mysql数据库的可视化界面,无法在代码中访问.如果你们是想在代码中连接MySQL数据库,比如通过访问数据库的用户名和密码来进行登录验证,那么请看 ...

  3. java代码连接oracle数据库连接_在JAVA中连接Oracle数据库(例子)

    * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - java - 代码样式 - 代码模板 */ package person.fane.test; import java.sql ...

  4. ASP.NET中连接Sqlserver数据库时提示:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc

    场景 在Visual Studio 2013中连接 SqlServer数据库时提示: 未能加载文件或程序集"Microsoft.SqlServer.Management.Sdk.Sfc 注: ...

  5. 我的docker随笔33:在容器中连接oracle数据库

    本文涉及一种在容器中连接 oracle 数据库的方法和步骤,最后给出测试结果.至于使用程序的方式连接,则是后续要实施的工作. 一.引言 之前在 Windows 实现了连接 oracle 数据库,本次尝 ...

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

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

  7. 如何在linux中连接sybase数据库

    如何在linux中连接sybase数据库 要在Linux中连接Sybase数据库,需要使用Sybase客户端工具(例如isql或bcp)以及Sybase库文件和驱动程序.以下是一些基本步骤: 1.安装 ...

  8. 如何在jsp中连接SQLserver数据库

    分享如何在jsp中连接SQLserver数据库(我这里用的是eclipse连接SqlServer2014) 前提:需要先把sqljdbc4.jar的包放在web-inf的lib包下(负责安装包,点击l ...

  9. IDEA中连接MySQL数据库并逆向生成实体类

    IDEA中连接MySQL数据库并逆向生成实体类 首先在MySQL中创建数据库表,1个表,多个表都可以 打开IDEA 创建SpringBoot项目并新建MVC三层架构的文件夹,也可以不建,生成实体类可以 ...

最新文章

  1. go package学习——os
  2. 菜鸟学Linux 第033篇笔记 bootloader,inittab
  3. 【前端模块】HTML5标签
  4. mysql 事务关联_MySQL 关联、联合查询,事务ACID见解
  5. python怎么播放mp3_python上播放mp3歌曲
  6. app启动监听网络类型
  7. Eclipse离线安装Java Decompiler插件
  8. shell 编程-Expect
  9. 基于LDAP的WebLogic虚拟化统一用户权限管理
  10. 几种简单的负载均衡算法及其 Java 代码实现
  11. Oracle10G各版本下载
  12. jmeter 连接mysql数据库
  13. Windows XP优化指南
  14. java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
  15. 计算机专业毕业生的就业政策,计算机专业毕业生就业情况分析及应对策略
  16. Kademlia详解
  17. 【在线教育直播】直播很卡怎么办?
  18. Ubuntu 安装库dbus-pytho
  19. TI达芬奇系列TMS320DM8148浮点DSP C674x + ARM Cortex-A8高性能视频处理器开发板规格书
  20. 网站关键词优化怎么做的(seo如何挖掘关键词)

热门文章

  1. [听风]TBC单体插件装备掉落查询AtlasLootClassic
  2. 提升固定资产管理效率,一招轻松制胜
  3. 基于SSM家电补贴一站式服务平台-计算机毕设 附源码12305
  4. 计算机C语言学习心得
  5. 分析COleSafeArray
  6. html转ubb php,window_简单的Html转换UBB的程序,这个功能主要是让 UBB 转贴的 - phpStudy...
  7. 网页引入svg图片的4种方式
  8. Hello Akka
  9. 如何修复和解决 IP 地址冲突
  10. 被任命为董事后 埃里森所持特斯拉股票账面损失已超过4亿美元