#include <iostream.h>
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
int main(){
//使用ADO连接数据库...
//---------------------------------------------------------------------------------
_ConnectionPtr m_pConnection;
CoInitialize(NULL);
m_pConnection.CreateInstance(__uuidof(Connection));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。
try
{
// 打开本地Access库db1.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
cout<<"数据库连接失败,确认数据库db1.mdb是否在当前路径下!"<<endl;
return FALSE;
}
//-------------------------------------------------------------------------------------
//建立数据集
//-------------------------------------------------------------------------------------
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些意想不到的错误。
try
{
m_pRecordset->Open("SELECT * FROM Home2",
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
//AfxMessageBox(e->ErrorMessage());
cout<<e->ErrorMessage()<<endl;
}
//--------------------------------------------------------------------------------------
//读取数据
//--------------------------------------------------------------------------------------
_variant_t var;
char *strID,*strX,*strY;
float X,Y;
try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
cout<<"表内数据为空"<<endl;
return 1;
}
// 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("ID");
if(var.vt != VT_NULL)
strID= _com_util::ConvertBSTRToString((_bstr_t)var); //_variant_t转字符串
var = m_pRecordset->GetCollect("X");
if(var.vt != VT_NULL)
strX=_com_util::ConvertBSTRToString((_bstr_t)var);
var = m_pRecordset->GetCollect("Y");
if(var.vt != VT_NULL)
strY=_com_util::ConvertBSTRToString((_bstr_t)var);
cout<<strID<<"is"<<strX<<" "<<strY<<endl;
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
}
//--------------------------------------------------------------------------------------
//关闭数据集
m_pRecordset->Close();
m_pRecordset = NULL;
//--------------------------------------------------------------------------------------
//关闭数据库连接
//--------------------------------------------------------------------------------------
if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;
return 0;
}
分享到:
相关推荐
利用ADO连接Access数据库
该资源是本人在VC下用ADO读写Access数据库期间收集的关于ADO数据库的资料,加有VC的列表框。并包含一些源代码,希望能对大家有所帮助!
ADO访问ACCESS数据库-数据库应用-VC_C++,建立了很多包装类
VC++6.0 通过ADO方式直接连接ACCESS数据库,对ACCESS数据库进行操作。
VC中用ADO连接ACCESS数据库,实现基本操作,很好的一个例子!!
本文通过实例演示如何在VC++中使用ADO进行ACCESS数据库编程,并对涉及到的几个概念进行详细解释。 本文不对ADO和ACCESS的基本概念进行详细解释,主要包括以下内容: 第一部分 ADO和ADOX到底是什么,二者的作用和区别...
VC6通过ADO操作Access数据库(AdoRWAccess),参见: http://download.csdn.net/detail/jojolovejj/3048825 可是那边没有代码下载,折腾N久终于找到了
开发环境:VS2010C++ 用ADO方式读取数据库,代码清晰易懂,适合新手学习 数据库文件为ACCESS 需要用数据源配置的
VC ADO连接Access数据库与查询简单实例 这里实现ADO连接数据库的最简单代码,有利于初学数据库编程人员的参考,希望能对你有帮助!!!
讲述了如何使用vc来操作access数据库,很全面 讲述了如何使用vc来操作access数据库,很全面 讲述了如何使用vc来操作access数据库,很全面 讲述了如何使用vc来操作access数据库,很全面
里面总结了Vc 中Ado创建access数据库,VC小技巧,VC+ADO+Access2000数据库文件密码的设置和修改,在对话框中动态显示位图等等
个人用VC使用ADO连接的access数据库 做得个人财务管理软件,很实用 经测试已经没有bug了
VC利用ADO库访问ACCESS数据库,新增、修改和更新.保存BMP文件到OLE字段。
vc++中用ADO连接access数据库,一个简单的练习程序!有利于初学者入门,带文字说明!免费提供!希望对初学者有帮助!
vc 用ado连接access数据库 自己整理的希望大家有用
这是一个利用ado访问数据库的程序,对初学者有一定的借鉴作用-ado access to the database using the procedures for beginners a certain reference
VC 使用ADO开发ACCESS数据库
vc 通过Ado访问access数据库的一个简单例子
运用ADO技术连接ACCESS数据库,附有具体步骤和代码……