使用VC连接Access数据库的两种方法

 以前的时候用VC写了两种连接Access数据库的方法,为了方便以后查找把这两种方法做一下简单的介绍。Windows平台的数据接口标准有ODBC、OLE DB、ADO和Borland的BDE接口,ODBC(Open DataBase Connectivity)只能用于访问关系型数据库,为了访问非关系型数据微软设计了OLE DB接口并在此基础上推出了ADO(ActiveX Data Objects)。本文介绍的方法是ODBC和ADO。

  一、使用ODBC接口,在这里我们使用MFC的CDatabase类,该类是对SQLConnect等ODBC的API的封装。需要包含afxdb.h


BOOL ODBCConnect(CString strDBFile)

{

CString strConnect;

strConnect.Format(_T("ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};UID=sa;PWD=;DBQ=%s"), strDBFile);

CDatabase db;

if(db.Open(NULL, FALSE, FALSE, strConnect))

{

//连接数据库成功

CRecordset rs(&db);

CString strSql;

strSql = _T("select * from info");                                //SQL语句

rs.Open(AFX_DB_USE_DEFAULT_TYPE, strSql);                        //执行Sql语句(可添加 删除 查询等)

if(rs.IsOpen())

{

CDBVariant variant;

rs.MoveFirst();

while(!rs.IsEOF())

{

//读取记录

rs.GetFieldValue(_T("姓名"), variant);

rs.MoveNext();

}

}

db.Close();

return TRUE;

}

return FALSE;

}

 二、使用ADO连接数据库,因为要使用COM,需要初始化(CoInitialize).然后就可以生成接口的对象操作,代码如下:


#import "C:Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF")    //生成C++类,改变EOF函数的名称

using namespace ADODB;

BOOL ADOConnect(CString strDBFile)

{

_ConnectionPtr pConnection;

if(pConnection.CreateInstance(__uuidof(Connection)) != S_OK)

{

return FALSE;

}

CString strConnect;

strConnect.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s"), strDBFile);

if(pConnection->Open(_bstr_t(strConnect), "", "", adModeUnknown) == S_OK)

{

//连接数据库成功

_RecordsetPtr pRecordset;

if(pRecordset.CreateInstance(__uuidof(Recordset)) != S_OK)

{

pConnection->Close();

return FALSE;

}

CString strSql;

strSql = _T("select * from info");

HRESULT hr = pRecordset->Open(_bstr_t(strSql), _variant_t((IDispatch*)pConnection, TRUE), adOpenUnspecified, adLockUnspecified, adCmdUnknown);

if(hr != S_OK)

{

pConnection->Close();

return FALSE;

}

_variant_t vt;

pRecordset->MoveFirst();

while(!pRecordset->adoEOF)

{

vt = pRecordset->Fields->GetItem("姓名")->Value;

pRecordset->MoveNext();

}

pConnection->Close();

return TRUE;

}

return FALSE;

}

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-25 23:35:01

使用VC连接Access数据库的两种方法的相关文章

c++连接mysql数据库的两种方法(ADO连接和mysql api连接)_C 语言

第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

ASP.NET连接 Access数据库的几种方法_实用技巧

web.config 第一种方法: <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="AccessConnString"

Java 连接Access数据库的两种方式_java

java连接MS Access的两种方式: 1.JDBC-ODBC Java连接Access可以使用MS自带的管理工具-->数据源(ODBC)设置建立连接,这样就不需要导入jar.但是,如此一来程序部署的每个机器上都要进行设置不方面.所以现在不会使用啦. 2.JDBC java也可以和连接其他数据库一样连接MS Access,导入数据库相应的jar包,进行连接. 复制代码 代码如下: java Access JDBC jar包:Access_JDBC30.jar 具体连接,参考下面代码: 复制代

SQL2005Express中导入ACCESS数据库的两种方法_mssql2005

方法一:单表导入 (1)打开"SQL Server 外围应用配置器"-->"功能的外围应用配置器" -->些服务默认是关闭的,若不打开,将不能进行导入操作. 在"Database Engine"下选择"即席远程查询"-->启用 openrowset 和opendatasource 支持(E) 如下图: (2)在SQL Server Management Studio Express中"新建查询&qu

ASP连接Access数据库的几种方法!

access|数据|数据库 1.set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath SQL="select * from auth where

ASP连接Access数据库的几种方法_ASP基础

1. 相对与比较老的环境,建议使用第二个 set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION") DBPath = Server.MapPath("customer.mdb") dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath SQL="select * from auth

ASP连接Access数据库的几种方法

1. 相对与比较老的环境,建议使用第二个 set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION") DBPath = Server.MapPath("customer.mdb") dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath SQL="select * from auth

access数据库-请教一个VC++连接ACCESS数据库的问题

问题描述 请教一个VC++连接ACCESS数据库的问题 我用VC连接有密码的ACCESS数据库死活连接不上,密码输入的是绝对正确,如果把密码去掉就连上了,请问是怎么回事呢? 数据库连接字符串如下: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:db11.mdb;Persist security info = FALSE;Jet OLEDB:Database Password=548654"; 解决方案 看上去字符串没啥问题.密码对不上只

JDBC连接Access数据库的几种方式介绍_JSP编程

接下来总结一下常用的几种连接方式. 例如有如下的Access数据库student,表basic,以及6条记录,现在通过几种方式在Jsp中将他们的数据显示出来.如图所示: 对于几种连接Access数据库的方式,基本上都是基于JDBC-ODBC方式的,当然也有纯JDBC驱动的方式.这里我暂时就不说了.对于这几种方式,除了取得连接之处不同外,其他的代码都是一样的.所以这里先写出取得连接的几种方式,然后再用完整的代码进行显示. 方式一:通过JDBC-ODBC方式桥连直接连接: 1.对于这种方式,首先要建