zoukankan      html  css  js  c++  java
  • VC++使用ActiveX控件连接和操作数据库

    VS2008运用ActiveX控件连接和操作数据库关闭时一直有个内存释放的错误,好像使用VC6.0会多生成2个文件,就不会有问题。

    VC++使用ActiveX控件连接和操作数据库的方法分两种:

    1.通过属性窗口连接数据库
    2.通过代码连接数据库

    1.通过属性窗口连接数据库
    基本步骤:
    (1)创建一个基于对话框的应用程序ActiveXDB;

    (2)添加CAdodc控件:对话框上右键单击,选择Insert ActiveX control菜单项,弹出的对话框中选择Microsoft ADO Data Control version 6.0 , 单击"ok"按钮,成功添加一个CAdodc控件。

    (3)使用CAdodc控件:首先需要连接数据库,然后传递SQL语句操作数据表。CAdodc控件右键属性,control中,点击use connection string,用build 设置一下。RecordSource中选择1-adCmdText,下面的框输入SQL执行语句。

    (4)添加DATAGrid控件:对话框上右键单击,选择Insert ActiveX control菜单项,弹出的对话框中选择Microsoft DataGrid Control version 6.0 , 单击"ok"按钮,成功添加一个DATAGrid控件。

    (5)使用DATAGrid控件显示数据集数据:DATAGrid控件通常与CAdodc控件或ADO对象Rescordset一起使用。因为上面创建好CAdodc控件,可以通过DataGrid控件的属性窗口将其绑定到CAdodc对象上。鼠标右键单击DATAGrid控件,点Edit DataGrid Object 菜单项,打开属性窗口;再选择“ALL”选项卡,选中DataSource属性,在Value列中单击,在显示的组合框中选择CAdodc控件的ID号。这样,DataGrid控件就关联到了CAdodc控件,即DATAGrid控件可以显示CAdodc控件对应的数据集数据。


    2.通过代码连接数据库

    基本步骤
    (1)创建一个基于对话框的应用程序ActiveXDB;
    (2)添加CAdodc控件,建立对应的控件变量m_adodc;添加DATAGrid控件,建立对应的控件变量m_adodc;属性不设置;
    (3)控件所在的对话框,对应的cpp文件中OnInitDialog()函数,添加如下代码:
    BOOL CActiveXDBDlg::OnInitDialog()
    {
    ……
    m_adodc.SetConnectionString("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=suntest;Data Source=WWW-ED1F301E78B;Persist Security Info=False"); 
    CString sql = "select * from 仓库3 order by 仓库编号 desc";
    m_adodc.SetRecordSource(sql);
    m_adodc.Refresh();

    m_grid.SetRefDataSource(m_adodc.GetControlUnknown());
    ……
    return TRUE; 
    }

    Note:
    网上和书上很多写的是m_adodc.GetRecordset(),用VC++编译出现错误提示:cannot convert parameter 1 from 'class C_Recordset' to 'struct IUnknown *'
    原因:m_adodc.GetRecordset()的返回值是C_Recordset类型,而m_grid.SetRefDataSource(IUnknown *) 需要传入的参数是IUnknown 结构体,导致类型不匹配出错.

  • 相关阅读:
    求职方法论
    测试经验与教训_学习笔记
    测试架构师修炼之道_学习笔记
    Jmeter测试oracle
    Jmeter 非UI界面jmx脚本不能正常退出
    Jmeter参数化的理解
    jmeter 测试并发
    Jmeter测试数据库
    pytorch runtime error: CUDNN_STATUS_MAPPING_ERROR
    Python/pytorch 切换国内源/AttributeError: module 'torch.jit' has no attribute 'unused'/not a trusted or secure host
  • 原文地址:https://www.cnblogs.com/kind064100611/p/4420242.html
Copyright © 2011-2022 走看看