elete()方法很容易删除记录。Delete()方法的原型如下:
Delete(enum AffectedEnum AffectRecords);
参数AffectRecords 是一个枚举型变量,用于指定删除方式。如果为此变量赋值
adAffectCurrent,则只有当前记录被删除;如果赋值为adAffectedGroup,则符合过滤器的所
有行都被删除。下面一段代码将当前记录删除:
m_Recordset->Delete(asAffectCurrent);
m_Recordset->Update();
12.6.5 关闭记录集
当所有cāo作结束后,应当关闭记录集及当前连接,分别调用Recordset 对象和Connection
对象的Close()方法即可,代码如下:
//关闭记录集
if (m_recordSet != NULL)
m_recordSet->Close();
//关闭连接
if (m_connection !=NULL)
m_connection->Close();
12.7 利用ADO 查询并cāo作数据库实例
实例12-2:ADO 使用实例。源代码在光盘中“\12\实例12-2\AdoTest”目录下。
前面讲了很多ADO 的基础知识,读者也应该对ADO 有了一个基本的了解,并且知道了
ADO 的常用函数和cāo作数据库的步骤。下面即将进行实际cāo作,这里将利用上面所讲的知识
编写一个程序,达到查询和cāo作数据库的目的。
在具体编写程序前,还要了解一下经常用到的两种类型,即_variant_t 和_bstr_t。它们是
两个类,分别继承了VARIANT 和BSTR,并增加了一些方法。之所以引入这两种数据类型,
是因为COM 必须设计成跨平台,在COM 里用不了CString 类,这时需要有一种更普遍的方
式来处理字符串以及其他数据。VARIANT 就是一个巨大的union,包含了除char *以外的所
有的数据类型,BSTR 取代了char*。利用新引入的这两种类型,会使编程更加方便。比如从
结果集rs 中读取数据,然后放到List Box 控件m_List 中。如果采用新的类型,具体代码如
下:
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·356·
_variant_t Holder;
Holder = rs->GetCollect("FIELD_1");
m_List.AddString((char*)_bstr_t(Holder));
对比一下没有采用_variant_t 和 _bstr_t 的代码:
COleVariant covFieldValuel;
VARIANT vFieldValue;
CString Holder;
Rs->GetFieldValue("FIELD_1", covFieldValue);
vF