`
isiqi
  • 浏览: 16081764 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ADO数据库编程入门

阅读更多

1、使用ADO编程的方法有三种:
(1)使用预处理指令#import,例如:
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF")
程序在编译时读取msado15.dll中的类型库信息,自动生成两个该类型库的头文件和实现文件msado15.tlh和msado15.tli(在Debug或Release目录下)。两个文件中定义了ADO的所有对象和方法,以及一些枚举类型的变量,程序只要直接调用这些方法即可。
(2)通过读取msado15.dll中的类型库信息,建立一个ColeDispatchDriver类的派生类,然后通过它调用ADO对象。
(3)直接使用COM提供的API,例如:
CLSID clsid;
HRESULT hr = ::CLSIDFromProgID(L"ADODB.Connection", &clsid);
if (FAILED(hr))
{
...
}
::CoCreateInstance(clsid, NULL, CLSCTX_SERVER, IID_IDispatch, (void **)&pDispatch);
if (FAILED(hr))
{
...
}
前两种方法类似,第3种方法编程可能最麻烦,但效率最高,程序尺寸最小,并且对ADO的控制能力也最强。
2、以下使用#import方法操作数据库
(1)可以在stdafx.h的所有include指令之后import
(2)使用AfxOleInit()初始化COM库,通常在CwinApp::InitInstance的重载函数中添加。
(也可以使用::CoInitialize(NULL),之后在ExitInstance中调用::CoUninitialize)
(3)定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。
数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。
例如连接SQLServer数据库,代码如下:
// 连接到MS SQL Server
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;

_bstr_t strConnect = "Provider=SQLOLEDB; Server=hch; Database=mytest; uid=sa; pwd=sa;";

try
{
// Open方法连接字串必须四BSTR或者_bstr_t类型
pMyConnect->Open(strConnect, "", "", NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), "警告", MB_OK|MB_ICONINFORMATION);
}
(4)
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
try
{
pRecordset->Open(_variant_t("userinfo"), _variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox("无法打开userinfo表", "系统提示", MB_OK|MB_ICONINFORMATION);
}
(5)
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
try
{
pRecordset->Open(_variant_t("userinfo"), _variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox("无法打开userinfo表", "系统提示", MB_OK|MB_ICONINFORMATION);
}
(6)
// 读取当前记录集
try
{
pRecordset->MoveFirst();
while (pRecordset->adoEOF == VARIANT_FALSE)
{
// Fields是Recordset对象的容器,GetItem方法返回Field对象,Value是Field对象的属性,也可以用GetValue方法
CString sName = (char*)(_bstr_t)(pRecordset->Fields->GetItem(_variant_t("UserName"))->Value);
// 或者使用GetValue()
//CString sName = (char*)(_bstr_t)(pRecordset->Fields->GetItem(_variant_t("UserName"))->GetValue());
AfxMessageBox(sName);
pRecordset->MoveNext();
}
}
catch (_com_error &e)
{
MessageBox(e.Description(), "系统提示", MB_OK|MB_ICONINFORMATION);
}
(7)
// 修改记录
try
{
pRecordset->MoveFirst();
while(pRecordset->adoEOF == VARIANT_FALSE)
{
pRecordset->Fields->GetItem(_variant_t("Address"))->Value = _bstr_t("北京大学");
pRecordset->Update();
pRecordset->MoveNext();
}
}
catch (_com_error &e)
{
MessageBox(e.Description(), "系统提示", MB_OK|MB_ICONINFORMATION);
}
(8)添加,删除,使用带参数的命令,相应ADO的通知事件,绑定数据,设置过滤条件,索引和排序,事务处理。(略去,请参考其它资料)

分享到:
评论

相关推荐

    Visual C++ ADO 数据库编程入门

    Visual C++ ADO 数据库编程入门,VC数据库编程典书籍,值得信赖!

    ADO数据库编程入门(VC)

    ADO数据库编程入门 本文简要介绍了在VC++ 6.0中使用 ADO进行客户端数据库编程的基本步骤,以及常见问题的解决方法,可供入门级的参考之用。 ADO 是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在...

    ADO 数据库编程入门

    ADO是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的...

    ADO数据库编程入门.doc

    ADO数据库编程入门.doc

    Visual C++ ADO数据库编程入门

    Visual C++ ADO数据库编程入门,在VC++中使用ADO编程,事务处理操作等

    ADO数据库编程入门介绍

    本文专门用于ADO数据库编程入门 简单明了 适合初级VC程序员阅读

    几篇ADO数据库编程的入门指导文章

    几篇ADO数据库编程的入门指导文章,讲解数据库的链接查询和修改等,文章中含实例代码

    Visual C++数据库编程快速入门

    一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见...

    ADO数据库编程基础方法简介

    这个对于那些编写MFC数据库的新手来说是一个不错的入门!有兴趣的话可以下来学习!!相信对你是有帮助的!

    ADO.net快速入门与精通(数据库编程力荐)

    ADO.net快速入门与精通ado.net 入门 图解 精通 数据库 编程 可以说看了第一篇,你就已经入门了。动画图解,这都不明白,就无语了

    ADO编程 数据库编程

    文档中按实战进行讲解。...比较适合对数据库ADO入门点的码农。 本文档为word类型。文档中分上中下三部分。主要介绍了如何利用ADO(一种程序对象,用于表示用户数据库中的数据结构和所包含的数据。)进行数据库操作。

    基于VisualC_的ADO数据库编程

    这是介绍VC++通过ADO来操作数据库的一本入门课程,很适合初学者,介绍了ado操作数据库的原理,然后通过实际实例来讲解,简单易懂。

    ado数据库动态连接入门材料

    不错的关于ado数据库入门材料,想学数据库编程的可以下下来看看

    ADO.rar_ADO_数据库开发

    ADO开发数据库编程入门,数据库开发资料,谢谢大家

    vc ADO编程入门

    ADO 是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的...

    C#2012数据库编程入门经典

    全书就是一本帮助具有C#语言基础的程序员快速掌握数据库编程知识的指南,包括了使用SQL Server 2012创建数据库和表对象;编写SQL查询,修改和查询(包括连接)SQL表中的数据;使用C#建立GUI数据库应用程序;关系...

Global site tag (gtag.js) - Google Analytics