C++ Access数据库连接、读写等
来源:互联网 发布:小学生有必要学编程吗 编辑:程序博客网 时间:2024/06/04 00:56
使用C++编程语言,连接对Access数据库进行操作,常用的方法有DAO和ADO两种方式,本文将介绍采用ADO的方式方位Access数据库。
先介绍一下ADO,ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组建。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。
在程序的开始,首先导入所需要的库:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") ,这里重命名EOF是必要的,因为典型的VC应用都已经定义了EOF作为常数-1。
完整的程序如下,以注释的形式来对程序进行解释:
_ConnectionPtr m_pConnection; //连接access数据库的链接对象
_RecordsetPtr m_pRecordset; //结果集对象
CoInitialize(NULL); //初始化
m_pConnection.CreateInstance(__uuidof(Connection));//实例化对象
//连到具体某个mdb ,此处的的Provider语句因Access版本的不同而有所不同。
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyAccess.mdb","","", adModeUnknown);
}
catch(_com_error e)
{
AfxMessagebox(_T("数据库连接失败!"));
return;
}
m_pRecordset.CreateInstance(__uuidof(Recordset));//实例化结果集对象
//执行sql语句
try
{
CString sql= _T("select * from Patient");
m_pRecordset->Open(sql, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection= NULL;
}
return ;
}
//处理结果集
try
{
//若结果为空,结束
if(m_pRecordset->BOF)
{
AfxMessageBox_T(("表内数据为空!"));
if(m_pConnection->State)
{
m_pRecordset->Close();
m_pRecordset = NULL;
m_pConnection->Close();
m_pConnection= NULL;
}
return ;
}
//游标定位到第一条记录
m_pRecordset->MoveFirst();
_variant_t var; //从结果集中取出的数据放到var中
char *name;
while(!m_pRecordset->adoEOF)
{
var= m_pRecordset->GetCollect("Name"); //要取字段的名称。
if(var.vt != VT_NULL)
{
name= _com_util::ConvertBSTRToString((_bstr_t)var); //转换成char*类型
}
string MyName = name;
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMssage());
}
//退出程序时的处理 ,关闭数据库的相关操作
if(m_pConnection->State)
{
m_pRecordset->Close();
m_pRecordset = NULL;
m_pConnection->Close();
m_pConnection= NULL;
}
- C++ Access数据库连接、读写等
- ACCESS数据库连接ASP.NET(C#)
- C#和access数据库连接的一些问题
- 如何实现多个数据库连接(SQL,ACCESS,ORACLE)等
- Access数据库连接
- Access数据库连接
- access数据库连接
- Access数据库连接
- Access数据库连接
- .net C#,access,MDB数据库BLOB二进制字段的读写
- ASP与Access数据库连接
- Access数据库连接字符串
- Odbc-Access数据库连接
- ACCESS数据库连接问题~
- ACCESS数据库连接类设计
- ASP与Access数据库连接
- 数据库连接字符串 - Microsoft Access
- ADO数据库连接Access
- 写程序测试本机Cache的大小
- Struts2完成文件的上传功能实例
- 查看CPU Cache大小
- HTML与CSS教学-第二章 HTML基础
- Struts2完成文件的下载
- C++ Access数据库连接、读写等
- atof函数
- sql 语句 用* 与 用列名 相比缺点是什么?
- Android中Toast的用法简介
- Jquery下拉菜单
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- vs2005单元测试
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
- 3.67