一般来说,自定义ADO对象连接对数据库操作比较容易控制,大部分资料也讲解的多,对于ADO控件,资料一般只是介绍如何使用ADO控件访问数据库以及如何绑定其他控件显示,而对于关闭ADO控件的连接讲解比较少,我的程序想在主界面使用ADO控件显示数据库,还允许用户进行数据库压缩。虽然代码比较简单,但是还是费了不少功夫,本来还想单独作个小程序算了,后来终于解决了。进行了一下小结,希望对数据库开发人员有所帮助。
Vb使用ADO对数据库操作一般有两种方式,分别是自己定义控制连接以及使用ADODC控件进行数据库访问。
一、自己定义连接
上述代码就是打开一个数据库并执行一条查询命令
上述代码就关闭连接,并释放资源。
一般这个方法比较容易控制,介绍也比较多,这里不多做解释了
二、ADODC控件
一般显示一个数据库,最方便的莫过于用ADODC和DBGRID控件了。
这段代码也是经常有介绍,将ADO控件连接数据,并绑定表格控件,但是很少有说到如何关闭ADO控件的连接。一般可能认为窗口关闭ADO可以自行释放了。
我制作的一个软件,主界面使用ADO和DBGIRD绑定显示一个数据库,同时也定义了一个连接用来自行一些更新的SQL语句。大家也知道,如果在 Access 数据库中删除了多条记录,数据库并不会变小,必须进行压缩。所以我在界面上添加了一个菜单:压缩数据库。
1、增加引用:Microsoft Jet and Replication Objects
2、增加了如下代码:
首先关闭自定义的连接,然后压缩数据库,重新连接,释放JR对象。
结果运行后总是报错:
看来是由于我使用ADO控件打开了数据库,必须关闭数据连接才能正常进行压缩。
首先我想既然打开是给.ConnectionString 、RecordSource 赋值后调用REFRESH方法,应该可以将其赋为空字符串后REFRESH也可以。
运行后,出现如下提示框:
虽然压缩操作可以正常执行,但是弹出这么一个对话框对程序也不合适,经过反复调试,终于找到了方法:将ADO控件的.ConnectionString 、RecordSource属性赋值为空;释放Recordset对象。缺少一个操作都会出现上述对话框提示。最后的代码如下:
一般来说,自定义ADO对象连接对数据库操作比较容易控制,大部分资料也讲解的多,对于ADO控件,资料一般只是介绍如何使用ADO控件访问数据库以及如何绑定其他控件显示,而对于关闭ADO控件的连接讲解比较少,本人根据工作时的心得进行了一下小结,希望对数据库开发人员有所帮助。