游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1016|回复: 0

ADO Data Control 与 编辑框的关联 wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2004-12-6 20:26:00 | 显示全部楼层 |阅读模式

  在编程中使用ADO操作中涉及到COM接口的一些东东,有些人知道ADO方便,但是在具体操作的时候可能对如何从COM接口中实现调用却不太理解,使得ADO的使用上存在一些问题。<br>

我在ADO Data Control控件和ADO RecordSet的通信中遇到了这样的问题!

  我希望将ADO Data Control的导航功能于ADO Recordse建立关联,一般的,ADO Data Control 于DBGrid建立关联可以通过设置DBGrid的DataSource 属性来实现。如果将DBGrid中的滚动也反映到相应的编辑框中,比较笨的办法是从DBGrid中去获得Cell的信息,然后通过ADO Recordset获得相应的记录内容。其实在ADO Data Control中已经有一个正在操作的Recordset了,所以可以通过如下的事件实现直接调用。<br>

MessageType:WillMove
Parameter:  
Long  adReason ;   10: ADO Data Control从数据库中读出,此时也会涉及到记录的Move,这个是要过滤掉的; 13是数据记录的滚动

Long  FAR* adStatus;

LPDISPATCH pRecordset;  这个变量由于是来自ADO Data Control的COM接口,所以直接使用比较困难,需要将其转化为ADO Recordset变量才好调用。<br>

void CDyeInfoDlg::OnWillMoveAdodc1(long adReason, long FAR* adStatus, LPDISPATCH pRecordset)
{
    _variant_t    varFld;
    CADORecordset *m_pRS;
    m_pRS = new CADORecordset();
    pRecordset->QueryInterface(IID_IDispatch, (void **)m_pRS);

    if( adReason != 10 )
    {
   //将给字段的信息直接设置到编辑框中,实现ADO Data Control 于编辑框的关联!
       m_pRS->GetFieldValue("DyeID",varFld);

    SetDlgItemText(IDC_DYEID,  LPSTR(varFld));
    }

}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 14:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表