网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
VC++程序员应当如何阅读ADO文档
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
能为在ADO.dll中声明的方法和属性提供错误处理例程。因此,你可以基于同样的错误处理机制编写自己的错误检查宏或内置函数。参见《Visual C++扩展》以及本文后续的示例代码。



在VC++与VB中编码时的约定

下面是ADO文档中关于如何使用VB和VC++编写代码的一个概览。



声明一个ADO对象

在VB中,一个ADO对象变量(此处以Recordset对象为例)如下声明:

Dim rst As ADODB.Recordset

子句"ADODB.Recordset"是在注册表中登记的Recordset对象的ProgID。而一个Record对象的实例如下声明: Dim rst As New ADODB.Recordset

或者:

Dim rst As ADODB.Recordset

Set rst = New ADODB.Recordset

而在VC++中,#import为所有的ADO对象生成了智能的指针类型。比如一个指向_Recordset对象的指针变量的数据类型为_RecordsetPtr,并如下声明:

_RecordsetPtr  rs;

而一个_Recordset对象的实例则如下声明:

_RecordsetPtr  rs("ADODB.Recordset");

或者:

_RecordsetPtr  rs;

rs.CreateInstance("ADODB.Recordset");

或者:

_RecordsetPtr  rs;

rs.CreateInstance(__uuidof(_Recordset));

当CreateInstance方法被成功调用后,该变量可被如此使用:rs->Open();

注意,如果变量是一个类的实例则用"."操作符,若是一个指向实例的指针则应使用"->"操作符。

一个变量能通过两种方式被使用。因为"->"操作符被重载,允许一个对象实例类似一个接口指针那样被使用;"->"操作符返回该指针;而由这个返回的指针访问_Recordset对象的成员。



编写省略String参数的代码

当你需要利用VB编写省略String参数的代码时,只需简单的略掉该操作数即可。但在VC++中,你必须指定该操作数为一个包含空字符串的_bstr_t变量:_bstr_t strMissing(L"");



编写省略Variant参数的代码

当你需要利用VB编写省略Variant参数的代码时,只需简单的略掉该操作数即可。但在VC++中,你必须指定所有的操作数。编写省略Variant参数的代码只需将该Variant设为专门的值,可以定义一个值为DISP_E_PARAMNOTFOUND、类型为VT_ERROR的_variant_t。还可以使用#import编译指示符提供的与之等价的常量vtMissing。

_variant_t  vtMissingYours(DISP_E_PARAMNOTFOUND, VT_ERROR);

或者:

vtMissing;



声明一个Variant

在VB中,一个Variant如下被声明:

Dim VariableName As Variant

在VC++中,定义一个_variant_t型的变量即可。主要有以下几种形式。注意:这些声明只是你在变成时刻采用的一个粗略的思路。

_variant_t  VariableName(value);

_variant_t  VariableName((data type cast) value);

_variant_t  VariableName(value, VT_DATATYPE);

_variant_t  VariableName(interface * value, bool fAddRef = true);



使用Variants数组

在VB中,利用Dim语句可以进行Variant数组的编程,并可以使用Array的函数。见如下示例:

Public Sub ArrayOfVariants

Dim cn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim fld As ADODB.Field



cn.Open "DSN=pubs", "sa", ""

rs = cn.OpenSchema(adSchemaColumns, _

                     Array(Empty, Empty, "authors", Empty))

For Each fld in rs.Fields

   Debug.Print "Name = "; fld.Name

Next fld

rs.Close

cn.Close

End Sub

以下的代码演示了如何通过一个_variant_t使用一个SafeArray数组。注意注释对应了编码的步骤。

1.再一次的

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号