第一范文网 - 专业文章范例文档资料分享平台

VC中使用ADO进行数据库开发的一些资料的整理

来源:用户分享 时间:2026/1/15 21:31:12 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

VC中使用ADO进行数据库开发的一些资料的整理

1.导入ado库

在StdAfx.h中,加入如下代码

#import \\\ no_namespace rename(\e(\

2.Com 初试化

在app的InitInstance中,加入 AfxOleInit();(MFC) 或者

CoInitialize(NULL) 如果用了CoInitialize

退出时,要调用CoUninitialize()

注意,如果在线程中也使用了com,那么在线程中也要用CoInitialize初始

3.连接数据库

_ConnectionPtr m_pAppConn;

hResult = m_pAppConn.CreateInstance(_T(\创建Connection对象

然后连接之

m_pAppConn->Open(\ Data Source = .\\\\DataBase\\\\aa.mdb\ \BOOL OpenConnect() {

HRESULT hResult; CloseConnect(); try {

hResult = m_pAppConn.CreateInstance(_T(\创建Connection对象 if(SUCCEEDED(hResult)) {

m_pAppConn->Open(\ Data Source = .\\\\DataBase\\\\aa.mdb\ \ } }

catch(_com_error e)///捕捉异常 {

CString errormessage;

errormessage.Format(_T(\连接数据库失败!\\r\\n错误信息:%s\ AfxMessageBox(errormessage); hResult = -1L; }

return (SUCCEEDED(hResult) ? TRUE : FALSE); }

这里连接的数据库是access数据库,在工程目录下的DataBase\\aa.mdb 关键连接的字符窜, 如果是access

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\192.168.1.1\\DataBase\\aa.mdb; 这是局域网上的文件

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\\\DataBase\\\\aa.mdb; 本机上的 如果是sql 2000

Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=sa;Initial Catalog=aa;Data Source=192.168.1.1; 数据库在192.168.1.1上,数据库名字是aa

4.关闭连接

BOOL CloseConnect() {

HRESULT hResult=0; try {

if(m_pAppConn!=NULL) {

if(m_pAppConn->State!=adStateClosed) {

hResult=m_pAppConn->Close(); }

m_pAppConn.Release(); } }

catch(_com_error e) {

_bstr_t bstrSource(e.Source());

_bstr_t bstrDescription(e.Description());

TRACE(_T(\\\n\ hResult=-1L; }

return (SUCCEEDED(hResult) ? TRUE : FALSE); }

5.使用recodeset打开记录

_variant_t RecordsAffected; _RecordsetPtr pRecordset = NULL;

strSql = _T(\ pRecordset.CreateInstance(_uuidof(Recordset));

pRecordset = pConn->Execute (_bstr_t(strSql) , &RecordsAffected , adCmdUnknown);

其中&RecordsAffected 可以获得有多少记录返回,这是记录的影像数目

6.关闭记录集

if(pRecordset != NULL && pRecordset->State) {

pRecordset->Close(); pRecordset = NULL; }

7.判断是否为空

if (pRecordset->adoBOF && pRecordset->adoEOF) {

//MessageBox(\没有符合条件的记录存在!\提示\ if(pRecordset != NULL && pRecordset->State) {

pRecordset->Close(); pRecordset = NULL; } return; }

8,从记录集取数据

_variant_t var;

pRecordset->MoveFirst();

for(;!pRecordset->adoEOF;pRecordset->MoveNext()) {

var = pRecordset->GetCollect(_T(\ }

9.几种常见数据的转换 如果是字符窜的字段

var = pRecordset->GetCollect(_T(\ if(var.vt!=VT_NULL) {

str= (LPCTSTR)_bstr_t(var); }

if(var.vt!=VT_NULL)

判断是必须的,如果是空,转换会出错 如果是int形 int aa = atoi(str)

_variant_t是个可变类型,支持很多种类型,

VC中使用ADO进行数据库开发的一些资料的整理.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9vbbm9ip734mu7525eec_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top