下载此文档

ado操作各类数据库.doc


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
用ado操作各类数据库
用程序如何控制数据库
关系型数据库实际上是一个包含了若干个二维记录集(表)的数据集合。用程序控制数据库的过程,实际上就是通过一个连接到数据库的指针,然后访问其中某一个二维记录集(表),从而进一步访问此记录集(表)的某个(些)数据,或者对此记录集(表)进行各种操作的过程。用示意图表示,就是:
图1-1 用程序操作数据库过程
下面分类进行说明。
二、用ado操作access
在程序中用ado操作数据库,根据实现的方法不同,大抵可以分为两类:
完全由代码实现;
使用数据库相关的控件来实现。
下面分别说明。

完全由代码实现的、用ado操作任何一种数据库,一般来说都要经过以下步骤:
引入ado引擎,即把下面的语句添加到程序文件的头部:
#import "C:\Program Files\Common Files\System\ADO\" rename_namespace("ADOCG") rename("EOF", "adoEOF")
using namespace ADOCG;
在程序中定义几个数据库类型的变量,例如:
_ConnectionPtr pCnn; // 定义一个到数据库的连接指针,必须
_RecordsetPtr pRec; // 定义一个指向记录集(表)的指针,必须
FieldsPtr pFlds; // 定义一个指向字段的指针
FieldPtr pFld; // 定义一个指向字段值的指针
HRESULT hRes; // 创建数据库连接时返回的句柄,用于判断是否连接成功
程序开始处调用CoUninitialize()函数,进行COM初始化调用:
if FAILED(CoInitialize(NULL))
{
CoUninitialize();
}
创建Connection的对象,使用如下语句:
hRes = ("");
判断Connection的对象创建是否成功,如果成功,则打开数据库,代码如下:
if( SUCCEEDED(hRes) )
{
// 连接数据库
hRes = pCnn->Open( sUsrConStr, // 连接字符串
"",
"",
adModeUnknown);
cout<<"数据库连接成功!"<<endl<<endl;
}
else
{
cout<<"数据库连接失败!"<<endl<<endl;
return;
}
其中sUsrConStr是连接字符串,用来区分所连接的数据库类型。
创建记录集(就是数据库中的表)对象:
("");
把数据库的一个记录集(表)指针赋给刚刚创建的记录集对象,一般通过执行SQL语句实现,例如:
pRec = pCnn->Execute(“SELECT * FROM 内蒙古”,NULL, adCmdText );
调用记录集对象的成员函数,就可以实现对表“内蒙古”的各种操作了。例如,若想提取表“内蒙古”的第一条记录的“北纬”字段的值,并赋给实型变量fLatitude,可以用如下语句:
pRec->MoveFirst(); // 将指针移动到第一条记录处
fLatitude = atof((LPCTSTR)(_bstr_t)pRec->GetCollect("北纬")); // 取数,赋值
对数据库的操作完成后,要关闭数据库:
pCnn->Close(); // 关闭数据库

  上面所述为操作数据库的通用步骤,对于任何一种数据库都是适用的。那么,操作不同类型的数据库,例如access和SQLServer,上述步骤中哪些地方需要变动?只有一处:连接字符串。不同类型的数据库就是通过连接字符串来区分的。对于没有设置密码的access数据库,连接字符串是:
Provider=;
Data Source=路径\数据库名称;
Persist Security Info=False;
Jet OLEDB:Database
设置了密码的access数据库,最后一个字符串变成:
Jet OLEDB:Database password=密码
即在尾部加上:“空格password=密码”。
  下面通过一个实例来说明如何通过代码操作access数据库。
  

ado操作各类数据库 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rdwiirh
  • 文件大小737 KB
  • 时间2021-03-09