网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
VC++程序员应当如何阅读ADO文档
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
为TRUE将允许更新,如果你只想检查字段的值而不想改变它那么就设置为FALSE。

Precision
数字型变量的位数。

Scale
数字型变量的小数位数。

Length
一个4字节变量的名字。该变量将包含缓冲区中数据的实际长度。




状态值

变量Status的值指示了一个字段的值是否被成功的拷贝到了对应的变量中。写数据时,可以给Status赋值为adFldNull来指示该字段将被设置为null。

常量

描述

adFldOK
0
一个非空的字段值被返回。

adFldBadAccessor
1
绑定无效。

adFldCantConvertValue
2
值因为符号不匹配或超界外的原因导致无法被正确转换。

adFldNull
3
读字段值时,指示一个空值被返回。写字段值时,指示当字段自身无法编码NULL时该字段将被设置为NULL。

adFldTruncated
4
变长数据或数字被截断。

adFldSignMismatch
5
值是有符号数,而数据类型是无符号数。

adFldDataOverFlow
6
数据值超出界限。

adFldCantCreate
7
不知名的列类型和字段已经被打开。

adFldUnavailable
8
字段值无法确定。比如一个新的未赋值的无缺省值的字段。

adFldPermissionDenied
9
未被允许更新数据。

adFldIntegrityViolation
10
更新字段时值违反了列的完整性要求。

adFldSchemaViolation
11
更新字段时值违反了列的规范要求。

adFldBadStatus
12
更新字段时,无效的状态参数。

adFldDefault
13
更新字段时,使用缺省值。




使用VC++对ADO的扩展的示例

在这个例子中,还使用了COM专有的“智能指针”功能,它能自动处理IADORecordBinding接口的QueryInterface和引用计数。如果没有智能指针,你得这样编码:

IADORecordBinding   *picRs = NULL;



TESTHR(pRs->QueryInterface(

          __uuidof(IADORecordBinding), (LPVOID*)&picRs));



if (picRs) picRs->Release();

使用智能指针,你可以用这样的语句从IADORecordBinding接口派生IADORecordBindingPtr类型:

_COM_SMARTPTR_TYPEDEF(IADORecordBinding, __uuidof(IADORecordBinding));

然后这样实例化指针:

IADORecordBindingPtr picRs(pRs);

因为VC++的扩展由Recordset对象实现,因此智能指针picRs的构造函数使用了_RecordsetPtr类指针pRs。构造函数利用pRs调用QueryInterface来获得IADORecordBinding接口。



// 以下即是示例程序

#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \

   no_namespace rename("EOF", "EndOfFile")



#include <stdio.h>

#include <icrsint.h>

_COM_SMARTPTR_TYPEDEF(IADORecordBinding, __uuidof(IADORecordBinding));



inline void TESTHR(HRESULT _hr) { if FAILED(_hr) _com_issue_error(_hr); }



class CCustomRs : public CADORecordBinding

{

BEGIN_ADO_BINDING(CCustomRs)

   ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_ch_fname,

                        sizeof(m_ch_fname), m_ul_fnameStatus, false)

   ADO_VARIABLE_LENGTH_ENTRY2(4, adVarChar, m_ch_lname,

                        sizeof(m_ch_lname), m_ul_lnameStatus, false)

END_ADO_BINDING()

public:

   CHAR    m_ch_fname[22];

   CHAR    m_ch_lname[32];

   ULONG   m_ul_fn

网学推荐

免费论文

原创论文

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