VC操作ADO的基本流程
来源:互联网 发布:知乎 智能晾衣架 编辑:程序博客网 时间:2024/05/01 09:05
VC++ ADO操作数据库方法步骤
大致步骤:
1, 引入ADO库定义文件,初始化COM环境
2, 初始化connection指针,连接数据库并打开
3, 利用已经建立好的连接,通过connection,command或者recorder对象操作数据库,对数据进行查询,处理等操作
4, 使用完毕后,关闭数据库,释放指针,并注释COM
示例程序如下:
#include "stdafx.h"
#include "iostream"
#include "string"
#include "vector"
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL); //初始化COM环境
_ConnectionPtr pMyConnect(__uuidof(Connection));//定义连接对象并实例化对象
_RecordsetPtr pRst(__uuidof(Recordset));//定义记录集对象并实例化对象
try
{
/*打开数据库“access2007” */
pMyConnect->Open("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=xtreme.accdb;Persist Security Info=False;","","",adModeUnknown);
} catch (_com_error &e)
{
cout<<"数据库初始化错误"<<endl;
cout<<e.Description()<<endl;
cout<<e.HelpFile()<<endl;
return 0;
}
cout<<"连接成功"<<endl;
try
{
pRst=pMyConnect->Execute("select * from Employee",NULL,adCmdText);
if(!pRst->BOF)
pRst->MoveFirst();
else
{
cout<<"表内数据为空"<<endl;
return 0;
}
vector<_bstr_t> column_name;
/*存储表的所有列名*/
for(int i=0; i< pRst->Fields->GetCount();i++)
{
cout<<pRst->Fields->GetItem(_variant_t((long)i))->Name<<endl;
column_name.push_back(pRst->Fields->GetItem(_variant_t((long)i))->Name);
}
/*对表进行遍历访问*/
while(!pRst->adoEOF)
{
vector<_bstr_t>::iterator iter=column_name.begin();
for(iter;iter!=column_name.end();iter++)
{
if(pRst->GetCollect(*iter).vt !=VT_NULL)
{
cout<<(_bstr_t)pRst->GetCollect(*iter)<<endl;
}
else
cout<<"NULL"<<endl;
}
pRst->MoveNext();//关闭记录集
cout<<endl;
}
}catch(_com_error &e)
{
cout<<e.Description()<<endl;
cout<<e.HelpFile()<<endl;
return 0;
}
/*关闭数据库并释放指针*/
try
{
pRst->Close(); //关闭记录集
pMyConnect->Close();//关闭数据库
pRst.Release();//释放记录集对象指针
pMyConnect.Release();//释放连接对象指针
}catch(_com_error &e)
{
cout<<e.Description()<<endl;
cout<<e.HelpFile()<<endl;
return 0;
}
CoUninitialize(); //释放COM环境
return 0;
}
说明:
本程序是在vs2008和access2007上编译通过的,如果有编译问题,可能因版本不同引起一些问题。
连接字符串因数据源不同而不同,所以因情况而变,可以直接连接ODBC的数据源,也可以直接连接其提供驱动的数据源。
数据的读取仅仅局限于一般的数据类型,象access里面的超链接数据类型和OLE对象数据是无法通过一般方法读取的,需要特别的方法来读取,本程序示例暂不做描述,详情见后文。- VC操作ADO的基本流程
- VC ADO 基本操作
- VC下ADO基本操作
- VC操作XML的基本流程
- VC操作XML的基本流程
- ADO.NET的操作流程
- VC++中ADO的操作
- VC操作ADO的方法
- VC对ADO的操作
- ADO的基本操作(一)
- ADO.NET的基本操作
- ADO数据库开发的基本流程
- 【VC++ 中使用ADO操作数据库学习笔记】_ConnectionPtr指针的基本用法
- VC下的数据库操作之--ADO
- VC数据库ADO操作的说明
- vc对ado操作
- vc对ado操作
- VC++ ADO操作总结
- SqlBulkCopy来实现批量插入数据的功能
- hdu4185解题报告
- SQL Server: 如何为函数(或其它对象)添加版本信息
- nyoj-696-Course
- macos lua环境搭建
- VC操作ADO的基本流程
- 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
- IOS CoreData 使用 (一)
- SVN服务器更改ip地址客户端怎么设置
- Code Jam 2009 Round1C Problem C. Bribe the Prisoners —— 区间DP
- SqlBulkCopy批量复制数据
- GPRS串口调试注意细节
- 类模板中.h和.cpp的实现方法
- linux下java打开t1应用程序,并打印输出信息