《VC数据库系统开发导航》中的第四章的ADO数据绑定类CADORecordBinding是如何出来的?谢了

liushulei 2003-09-22 02:38:43
《VC数据库系统开发导航》中的第四章的ADO数据绑定类CADORecordBinding是如何出来的?谢了
...全文
72 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahu 2004-02-24
  • 打赏
  • 举报
回复
刚好参考做了一个
头文件
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscvcextensionsheaderindetail.asp

#include "StdAfx.h"
#include "icrsint.h"
//包含在上面这个头文件里面
class CCustomRs : public CADORecordBinding
{
//开始进行数据类型绑定
BEGIN_ADO_BINDING(CCustomRs)
//把Recordset的第2个adVarChar类型的字段绑定到C/C++变量m_ch_fname上
//ADO_NUMERIC_ENTRY(1, adInteger, m_nID,
//sizeof(m_nID),0, m_ul_ID_Status, false)
ADO_VARIABLE_LENGTH_ENTRY2(1, adInteger, m_nID,
sizeof(m_nID), m_ul_ID_Status, false)
ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_ch_name,
sizeof(m_ch_name), m_ul_nameStatus, false)
ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_ch_pwd,
sizeof(m_ch_pwd), m_ul_pwdStatus, false)
//结束绑定
END_ADO_BINDING()

//紧接着定义上述宏中用到的C/C++变量
public:
int m_nID;
ULONG m_ul_ID_Status;
CHAR m_ch_name[22];
CHAR m_ch_pwd[32];
ULONG m_ul_nameStatus;
ULONG m_ul_pwdStatus;
};

调用
参考http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscexampleadowithextensions.asp

if(m_pRs==NULL||m_pRs->State!=adStateOpen)
return;
//if(m_pRs->)
try
{
IADORecordBindingPtr binRs(m_pRs);
CCustomRs rs;
binRs->BindToRecordset(&rs);
m_pRs->MoveFirst();
CString str;
while (!m_pRs->IsEOF)
{
// Process data in the CCustomRs C++ instance variables.
str.Format("ID=%d \nName = %s \nPassword=%s\n",
(rs.m_ul_ID_Status == adFldOK ? rs.m_nID: 0),
(rs.m_ul_nameStatus == adFldOK ? rs.m_ch_name: ""),
(rs.m_ul_pwdStatus == adFldOK ? rs.m_ch_pwd: ""));

AfxMessageBox(str);
m_pRs->MoveNext();
}
binRs->BindToRecordset(NULL);
binRs->Release();
}
catch(_com_error &e)
{
AfxMessageBox(_bstr_t(e.ErrorMessage())+_bstr_t(e.Description()));
}
hahu 2004-02-24
  • 打赏
  • 举报
回复
刚好参考做了一个

#include "StdAfx.h"
#include "icrsint.h"

class CCustomRs : public CADORecordBinding
//包含在icrsint.h里面http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscvcextensionsheaderindetail.asp
{
//开始进行数据类型绑定
BEGIN_ADO_BINDING(CCustomRs)
//把Recordset的第2个adVarChar类型的字段绑定到C/C++变量m_ch_fname上
//ADO_NUMERIC_ENTRY(1, adInteger, m_nID,
//sizeof(m_nID),0, m_ul_ID_Status, false)
ADO_VARIABLE_LENGTH_ENTRY2(1, adInteger, m_nID,
sizeof(m_nID), m_ul_ID_Status, false)
ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_ch_name,
sizeof(m_ch_name), m_ul_nameStatus, false)
ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_ch_pwd,
sizeof(m_ch_pwd), m_ul_pwdStatus, false)
//结束绑定
END_ADO_BINDING()

//紧接着定义上述宏中用到的C/C++变量
public:
int m_nID;
ULONG m_ul_ID_Status;
CHAR m_ch_name[22];
CHAR m_ch_pwd[32];
ULONG m_ul_nameStatus;
ULONG m_ul_pwdStatus;
};
调用的时候
参考这篇文章
http://www.yesky.com/20021014/1634674_1.shtml

if(m_pRs==NULL||m_pRs->State!=adStateOpen)
return;
//if(m_pRs->)
try
{
IADORecordBindingPtr binRs(m_pRs);
CCustomRs rs;
binRs->BindToRecordset(&rs);
m_pRs->MoveFirst();
CString str;
while (!m_pRs->IsEOF)
{
// Process data in the CCustomRs C++ instance variables.
str.Format("ID=%d \nName = %s \nPassword=%s\n",
(rs.m_ul_ID_Status == adFldOK ? rs.m_nID: 0),
(rs.m_ul_nameStatus == adFldOK ? rs.m_ch_name: ""),
(rs.m_ul_pwdStatus == adFldOK ? rs.m_ch_pwd: ""));

AfxMessageBox(str);
m_pRs->MoveNext();
}
binRs->BindToRecordset(NULL);
binRs->Release();
}
catch(_com_error &e)
{
AfxMessageBox(_bstr_t(e.ErrorMessage())+_bstr_t(e.Description()));
}
ZHENG017 2004-02-24
  • 打赏
  • 举报
回复
我猜啊,是从msdn里paste出来的。连类名都没变。
试试在msdn中搜索" CADORecordBinding"
sony19791015 2004-02-24
  • 打赏
  • 举报
回复
gz
JakeLian 2004-02-23
  • 打赏
  • 举报
回复
1.引入ADO库(好像是2.5以上才支持)
2.引入#include "icrsint.h"
cdwy411 2003-11-16
  • 打赏
  • 举报
回复
初始化 ole环境
直接继承即可
crystal_heart 2003-11-16
  • 打赏
  • 举报
回复
up
genhualiu 2003-11-16
  • 打赏
  • 举报
回复
哈哈....和我一样,
我刚刚碰到这个问题,所以上网来找一下.

没想到,呵呵....
这个是继承generic的,也就是自己写上去的.
我猜
csuxiong 2003-09-26
  • 打赏
  • 举报
回复
MFC里面当然没有,例如MSChart的类CMSChart类,MSFlexGrid的类CMSHFlexGrid在MFC里面都没有,很正常呀!
Allesgut 2003-09-26
  • 打赏
  • 举报
回复
你用数据绑定的时候在stdafx.h最后加上#include "icrsint.h"
liushulei 2003-09-24
  • 打赏
  • 举报
回复
继承CADORecordBinding类,可是MFC里没有
zhabj925 2003-09-24
  • 打赏
  • 举报
回复
不懂,“CADORecordBinding是如何出来的”什么意思?
内容概要:本文详细介绍了MySQLInnoDB存储引擎的逻辑存储结构及其表分区技术。InnoDB的逻辑存储单元由高到低依次为表空间、段、区、页和行,其表空间包括系统表空间、独立表空间、通用表空间、Undo表空间和临时表空间,每种表空间具有不同的用途和管理方式。文章进一步讲解了表分区的概念与型,包括RANGE、LIST、HASH、KEY以及多字段COLUMNS分区,阐述了分区的优势如提升查询性能、便于数据维护、支持跨物理设备存储等,并列举了实际SQL操作示例,帮助理解分区表的创建、修改、删除及重组等操作。同时指出了分区的限制条件,如最大分区数量、主键约束要求等。; 适合人群:具备一定MySQL数据库基础,从事数据开发、运维或架构设计的技术人员,尤其是工作涉及大数据量表管理与性能优化的1-3年经验研发人员。; 使用场景及目标:①深入理解InnoDB存储机制,优化数据库物理结构设计;②掌握表分区技术,应用于海量数据存储与高效查询场景,如日志系统、订单系统的时间分区设计;③通过分区实现数据归档、快速删除历史数据、提升查询性能等运维目标; 阅读建议:学习时应结合MySQL实际环境动手实践文提供的SQL命令,重点关注表空间管理和分区策略的选择,理解其对性能和维护的影响,并注意分区使用的限制条件以避免设计失误。

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧