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 结构体,导致类型不匹配出错.

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/kind064100611/p/4420242.html
Copyright © 2011-2022 走看看