VC++6.0中用ADO存取Access数据库的一点总结

VC++6.0中用ADO存取Access数据库的一点总结

ID:39914287

大小:101.02 KB

页数:7页

时间:2019-07-14

VC++6.0中用ADO存取Access数据库的一点总结_第1页
VC++6.0中用ADO存取Access数据库的一点总结_第2页
VC++6.0中用ADO存取Access数据库的一点总结_第3页
VC++6.0中用ADO存取Access数据库的一点总结_第4页
VC++6.0中用ADO存取Access数据库的一点总结_第5页
资源描述:

《VC++6.0中用ADO存取Access数据库的一点总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、事情是这样的,我的女朋友想要对日常生活的开销做个记录,以便控制花钱的尺度。看她每日用笔头记录,然后和我抢电脑用,曰:要用附件中的计算器统计结果,每每如此,不胜其烦,就给她做了一个个人家庭记帐系统,一劳永逸解决问题。期间用到了ADO操作Access数据库,在网上找了若干关于ADO的资料结合实践总结了一点使用心得如下,供有相同需求的朋友参考:附带了那个个人记帐系统,运行的界面如下:VC++下使用ADO编写数据库程序准备:(1)、引入ADO类#import"c:programfilescommonfilessystemadomsado15.dll"o_n

2、amespacerename("EOF","adoEOF")(2)、初始化COM在MFC中可以用AfxOleInit();非MFC环境中用:CoInitialize(NULL);CoUnInitialize();(3)#import包含后就可以用3个智能指针了:_ConnectionPtr、_RecordsetPtr和_CommandPtr1.连接和关闭数据库(1)连接例子:连接Access数据库m_pConnection.CreateInstance(__uuidof(Connection));try{//打开本地Access库Demo.mdbm_pConn

3、ection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Demo.mdb","","",adModeUnknown);}catch(_com_errore){AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");returnFALSE;}(2)、关闭//如果数据库连接有效if(m_pConnection->State)m_pConnection->Close();m_pConnection=NULL;(3)、设置连接时间//设置连接时间-------------

4、----------------------pConnection->put_ConnectionTimeout(long(5));2.打开一个结果集(1)打开,首先创建一个_RecordsetPtr实例,然后调用Open()得到一条SQL语句的执行结果_RecordsetPtrm_pRecordset;m_pRecordset.CreateInstance(__uuidof(Recordset));//在ADO操作中建议语句中要常用try...catch()来捕获错误信息,//因为它有时会经常出现一些意想不到的错误。jingzhouxutry{m_pRecor

5、dset->Open("SELECT*FROMDemoTable",//查询DemoTable表中所有字段m_pConnection.GetInterfacePtr(),//获取库接库的IDispatch指针adOpenDynamic,adLockOptimistic,adCmdText);}catch(_com_error*e){AfxMessageBox(e->ErrorMessage());}(2)关闭结果集m_pRecordset->Close();3.操作一个结果集(1)、遍历(读取)a)、用pRecordset->adoEOF来判断数据库指针是否已经

6、移到结果集的末尾了;m_pRecordset->BOF判断是否在第一条记录前面:while(!m_pRecordset->adoEOF){var=m_pRecordset->GetCollect("Name");if(var.vt!=VT_NULL)strName=(LPCSTR)_bstr_t(var);var=m_pRecordset->GetCollect("Age");if(var.vt!=VT_NULL)strAge=(LPCSTR)_bstr_t(var);m_AccessList.AddString(strName+"-->"+strAge);m_

7、pRecordset->MoveNext();}b)、取得一个字段的值的办法有两种办法一是//表示取得第0个字段的值m_pRecordset->GetCollect("Name");或者m_pRecordset->GetCollect(_variant_t(long(0));二是pRecordset->get_Collect("COLUMN_NAME");或者pRecordset->get_Collect(long(index));(2)、添加a)、调用m_pRecordset->AddNew();b)、调用m_pRecordset->PutCollect();

8、给每个字段赋值c)、调用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。