oledb vc访问mdb数据库_VC中连接mdb数据库及其数据读取方法
最近在做一个兼职,涉及到利用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数据库及其数据读取方法相关推荐
- java web access_Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- 如何在IDEA中连接mysql数据库
补充说明下,本篇博文连接数据库,只是将IDEA作为一个Mysql数据库的可视化界面,无法在代码中访问.如果你们是想在代码中连接MySQL数据库,比如通过访问数据库的用户名和密码来进行登录验证,那么请看 ...
- java代码连接oracle数据库连接_在JAVA中连接Oracle数据库(例子)
* TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - java - 代码样式 - 代码模板 */ package person.fane.test; import java.sql ...
- ASP.NET中连接Sqlserver数据库时提示:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc
场景 在Visual Studio 2013中连接 SqlServer数据库时提示: 未能加载文件或程序集"Microsoft.SqlServer.Management.Sdk.Sfc 注: ...
- 我的docker随笔33:在容器中连接oracle数据库
本文涉及一种在容器中连接 oracle 数据库的方法和步骤,最后给出测试结果.至于使用程序的方式连接,则是后续要实施的工作. 一.引言 之前在 Windows 实现了连接 oracle 数据库,本次尝 ...
- go语言服务器连接mysql,golang中连接mysql数据库
golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...
- 如何在linux中连接sybase数据库
如何在linux中连接sybase数据库 要在Linux中连接Sybase数据库,需要使用Sybase客户端工具(例如isql或bcp)以及Sybase库文件和驱动程序.以下是一些基本步骤: 1.安装 ...
- 如何在jsp中连接SQLserver数据库
分享如何在jsp中连接SQLserver数据库(我这里用的是eclipse连接SqlServer2014) 前提:需要先把sqljdbc4.jar的包放在web-inf的lib包下(负责安装包,点击l ...
- IDEA中连接MySQL数据库并逆向生成实体类
IDEA中连接MySQL数据库并逆向生成实体类 首先在MySQL中创建数据库表,1个表,多个表都可以 打开IDEA 创建SpringBoot项目并新建MVC三层架构的文件夹,也可以不建,生成实体类可以 ...
最新文章
- go package学习——os
- 菜鸟学Linux 第033篇笔记 bootloader,inittab
- 【前端模块】HTML5标签
- mysql 事务关联_MySQL 关联、联合查询,事务ACID见解
- python怎么播放mp3_python上播放mp3歌曲
- app启动监听网络类型
- Eclipse离线安装Java Decompiler插件
- shell 编程-Expect
- 基于LDAP的WebLogic虚拟化统一用户权限管理
- 几种简单的负载均衡算法及其 Java 代码实现
- Oracle10G各版本下载
- jmeter 连接mysql数据库
- Windows XP优化指南
- java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
- 计算机专业毕业生的就业政策,计算机专业毕业生就业情况分析及应对策略
- Kademlia详解
- 【在线教育直播】直播很卡怎么办?
- Ubuntu 安装库dbus-pytho
- TI达芬奇系列TMS320DM8148浮点DSP C674x + ARM Cortex-A8高性能视频处理器开发板规格书
- 网站关键词优化怎么做的(seo如何挖掘关键词)