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 * 类型。
VC中连接mdb数据库及其数据读取方法相关推荐
- oledb vc访问mdb数据库_VC中连接mdb数据库及其数据读取方法
最近在做一个兼职,涉及到利用vc连接mdb数据库的问题. 先介绍一下第一种方法: _ConnectionPtr m_pConnection; CoInitialize(NULL); //对连接进行初始 ...
- Android中连接MySql数据库获取数据的简单实现
文章目录 背景 demo布局 导入jar包 demo代码实现 权限设置 应用运行的结果 背景 一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的.但是今天我们就来尝试实现 ...
- 具体解释VB中连接access数据库的几种方法
在VB中,连接ACCESS数据库的方法主要有以下三种 使用ADO对象,通过编写代码訪问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件高速创建数据库连接 有三种连接方法 ...
- 详解VB中连接access数据库的几种方法
在VB中,连接ACCESS数据库的方法主要有下面三种 使用ADO对象,通过编写代码访问数据库 Connection 对象 ODBC数据源 使用ADO Data 控件快速创建数据库连接 有三种连接方法 ...
- #arcgis 中无法连接mdb数据库解决方法
#arcgis 中无法连接mdb数据库解决方法 最近看到部分人使用arcgis过程中出现无法连接mdb数据库或者是无法创建mdb数据.具体出现如图所示情况:连接到数据库失败:无法创建新的数据库,权限被 ...
- java web access_Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- JSP连接SQL数据库实现数据分页显示
<%@ page contentType="text/html; charset=gb2312" %> <%@ page language="java& ...
- go语言服务器连接mysql,golang中连接mysql数据库
golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...
- VC++中对文件的写入和读取
VC++中对文件的写入和读取 本文介绍两种方法对文件进行读取和写入操作:1.采用fstream类:2.采用CStdioFile类. CStdioFile继承自CFile,一个CStdioFile对象代 ...
最新文章
- sonarqube使用教程
- gbdt 算法比随机森林容易_用Python实现随机森林算法
- 无法读取源文件或磁盘_禁用格式化磁盘操作 保护电脑文件安全防止删除
- 临近年关,发生两起磁盘占满引发的服务下线故障
- Java中含有泛型的 JSON 反序列化问题
- JAVA提示定义常量_如何在Java中定义常量(Constant)
- 帆软9.0动态列之解决动态列的分组统计问题
- java中String类和StringBuffer类实例详解
- 好用的 windows10 软件推荐
- java中的约瑟夫问题_java实现约瑟夫问题
- 推荐一款好用的在线json格式化工具
- 手把手带你入门 Spring Security
- User requirement
- 概率论-小记录(矩估计)
- 3225 十进制到六进制
- JS对象基础-怎么理解对象
- 计算机网络(6)应用层
- ecs云服务器上传文件,ECS文件传输
- 黑马程序员————高新技术————类加载器
- 设计一个动物声音“模拟器”