您的位置:首页 > 编程语言 > C语言/C++

VC++6.0 中用 ADO 存取 Access 数据库

2007-02-02 12:00 330 查看
 本文转自VC知识库:http://www.vckbase.com/document/viewdoc/?id=1215

作者:querw

VC++下使用ADO编写数据库程序

准备:
(1)、引入ADO类


(2)、初始化COM

在MFC中可以用AfxOleInit();非MFC环境中用:


(3)#import 包含后就可以用3个智能指针了:_ConnectionPtr、_RecordsetPtr和_CommandPtr

1.连接和关闭数据库 (1)连接

例子:连接Access数据库


(2)、关闭

//如果数据库连接有效


(3)、设置连接时间 //设置连接时间-----------------------------------


2.打开一个结果集

(1)打开,首先创建一个_RecordsetPtr实例,然后调用Open()得到一条SQL语句的执行结果


(2)关闭结果集


3.操作一个结果集

(1)、遍历(读取)
a)、用pRecordset->adoEOF来判断数据库指针是否已经移到结果集的末尾了;m_pRecordset->BOF判断是否 在第一条记录前面:


b)、取得一个字段的值的办法有两种办法

一是

//表示取得第0个字段的值


或者


二是


或者


(2)、添加

a)、调用m_pRecordset->AddNew();
b)、调用m_pRecordset->PutCollect();给每个字段赋值
c)、调用m_pRecordset->Update();确认

(3)、修改
(4)、删除
a)、把记录指针移动到要删除的记录上,然后调用Delete(adAffectCurrent)


4.直接执行SQL语句,除了要用到结果集其余的大部分功能都可以直接用SQL语言实现

(1)、用_CommandPtr和_RecordsetPtr配合


(2)、直接用_ConnectionPtr执行SQL语句


5.调用存储过程
(1)、利用_CommandPtr


(2)、直接用_ConnectionPtr直接调用(见4.(2))

6.遍历数据库中的所有表名


7.遍历一个表中的所有字段


附:
1、_variant_t
(1)、一般传给这3个指针的值都不是MFC直接支持的数据类型,而要用_variant_t转换一下
_variant_t(XX)可以把大多数类型的变量转换成适合的类型传入:
(2)、_variant_t var;


2、BSTR宽字符串与CString相互转换


3、_bstr_t与CString相互转换


4、关于时间
Access:表示时间的字符串#2004-4-5#
Sql:表示时间的字符串''2004-4-5''
DateField(时间字段) select * from my_table where DateField > #2004-4-10#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息