龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC用Ado接口连接和使用数据库(4)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
BOOL CBKDlg::DestroyWindow() { // TODO: Add your specialized code here and/or call the base class m_dg.SetRefDataSource(NULL); long state; //下面的处理可能存在逻辑上的错误,不过关闭数

  BOOL CBKDlg::DestroyWindow()

   {

    // TODO: Add your specialized code here and/or call the base class

    m_dg.SetRefDataSource(NULL);

    long state;

    //下面的处理可能存在逻辑上的错误,不过关闭数据集与数据连接的语法是正确的


    if(!FAILED(prs->get_State(&state)))

     if(state!=adStateClosed)

      {

       prs->Close();

       prs=NULL;

      }

     if(!FAILED(pdb->get_State(&state)))

      if(state!=adStateClosed)

      {

       pdb->Close();

       pdb=NULL;

      }

     ::CoUninitialize ();//释放COM环境

     return CDialog::DestroyWindow();

    }

    void CBKDlg::OnBeforeColUpdateDatagrid(short ColIndex, VARIANT FAR* OldValue, short FAR* Cancel)

   {

    //该事件(方法)在MS DATAGRID 控件(ActiveX)的单元数据更新前发生

    //该事件您可能用不着,但其中的代码您可能用得着

    COleVariant v((LPCSTR)m_dg.GetText ());//获取上述控件当前单元格的数据

    CString fieldname=m_dg.GetColumns().GetItem(COleVariant(ColIndex)).GetCaption();

    DataTypeEnum fieldtype;//描述ADO数据类型的枚举类型

    prs->get_Fields(&pfds);//从数据集中获得数据域集合

    pfds->get_Item (COleVariant(fieldname),&pfd);//从数据域集合中获得特定名称的域

    pfd->get_Type (&fieldtype);//从上述域中获取其数据类型,如整型或字符串型

    switch (fieldtype){

     case adSmallInt:

     case adInteger:

          break;

     case adDate:

          break;

     case adCurrency://Data type describing for Money ,Understand?

          break;

     case adVarChar://对应于VB中的String类型和VC中的CString类型

          break;

     default:

          break;

     }

    }//该方法来源于MS DataGrid ActiveX控件的事件,无具体的处理代码,望海涵

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接