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

vc mysql控件_VC++使用ActiveX控件连接和操作数据库相关推荐

  1. COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)

    源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...

  2. 用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件

    用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件 用C#编写ActiveX控件 开发浏览器控件这是本控件开发完成后的一个简单应用.我们可以利用它以本地文件夹为单位来批量更新服务器 ...

  3. C++利用MySQL API连接和操作数据库

    1.C++连接和操作MySQL的方式 在Windows平台,我们可以使用ADO.ODBC或者MySQL API进行连接和操作.ADO (ActiveX Data Objects,ActiveX数据对象 ...

  4. COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控件大小(上)

    声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改而来,因此同样遵循Code Project Open L ...

  5. html 调用c#dll中的控件,C#调用ActiveX控件的方法

    C#调用ActiveX控件时通常要进行两步操作: 第一步:注册控件,例如ABE.DLL,将ABE.DLL拷贝至系统文件夹SYSTEM32下,然后在开始中执行CMD命令,regsvr32 ABE.DLL ...

  6. JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码

    转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...

  7. vc mysql教程视频教程_vc++_vc++教程_vc++视频教程 _课课家

    本套餐将包括两个重磅性的课程与一个赠送学习的课程,分别为SpringBoot实战视频教程与RabbitMQ实战教程跟SSM整合开发之poi导入导出Excel.目的是为了让各位小伙伴可以从零基础一步一个 ...

  8. koa+ts+mysql后台开发——(五)使用orm框架sequelize操作数据库,自定义格式校验、统一处理返回信息、分页格式

    文章目录 前言 一.引包 二.初始化sequelize 三.添加模型层 四.添加服务层 五.添加控制层 (增删改查) 六.自定义数据校验 七.统一处理返回信息 八.统一处理分页格式 九.在路由中引入导 ...

  9. Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)

    使用存储过程操作数据库 添加数据: --创建一个存储过程,向表中插入一条数据 create proc usp_insertintoTbClass @className nvarchar(50), @c ...

最新文章

  1. 一步一步学lucene——(第四步:搜索篇)
  2. ScrollViewer滚动究竟来触发载入数据的Behavior
  3. mysql pydev_pydev-python 链接mysql数据库(mac系统)
  4. 《HTML5移动应用开发入门经典》—— 1.6 编写移动网站
  5. 监控组策略应用----组策略结果
  6. opencv-api pyrDown
  7. Ruby设计模式透析之 —— 策略(Strategy)
  8. 【渝粤教育】国家开放大学2018年秋季 0529-21T高级英语阅读(1) 参考试题
  9. System center 2012 R2 实战九、SCOM+sharpoint+visio实现全国地图展示
  10. art-illumina模拟测序
  11. 电网设备股集体上涨,国家电网称将推进电网数字化转型
  12. 武汉科技大学计算机研究生在哪个校区,武汉科技大学在职研究生在哪个校区
  13. Rust 中级教程 第5课——trait(3)
  14. 第13天 面向对象
  15. 动态观测系统 overall memory 的变化
  16. 佐治亚理工计算机科学录取,至领留学学子获佐治亚理工学院计算机CS硕士录取...
  17. Unity安卓如何调用小键盘对配置文件进行修改
  18. Go语言IUP GUI库的安装笔记
  19. 韩顺平满汉楼java源码_图书商城app
  20. 质量员考试建筑八大员考试建筑消防设施工程质量的控制措施

热门文章

  1. 北工大计算机学院教授,北工大计算机学院计算机科学与技术导师介绍:杨宇光...
  2. tf.keras.losses.MeanAbsoluteError 损失函数 示例
  3. windows10 中 python3 离线 安装包,没有 网络 的 情况下 安装 whl包
  4. 13.最为经典的动态规划入门
  5. OpenGL ---渲染流水线之世界矩阵,相机变换矩阵,透视投影变换矩阵
  6. [librosa]0.8版本后不再支持write_wav
  7. oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle
  8. java读avro的流_0016-Avro序列化反序列化和Spark读取Avro数据
  9. Centos7 Docker Compose部署mysql5.7
  10. Spring Cloud Alibaba 升级改造:老项目升级到微服务的重构策略