一般来说,自定v义ADO对象连接对数据库操作比较容易控制www.shengfang.org,大部分资料也讲解的多,对于ADO控件,资料一般只是介绍如何使用ADO控件访问数据库以及如何绑定其他控件显示,而对于关闭ADO控件的连接讲解比较少,我的程序想在主界面使www.shengfang.org用vADO控件显示数据库,还允许用户进行数据库压缩。虽然代码比较简单,但是还是费了不少功夫,本来还想单独作个小程序算了,后来终于解www.shengfang.org决了。进行了一下小结,希望对数据库开发人员有所帮助。 Vb使用ADO对数据库操作一般有两种方式,分别是自己定义控制连接以及使用ADODC控件进行数据库访问。 一、自己定义连接 Public billconn As New ADODB.Connection '定义全局ADO连接变量 Public billcmd As New ADODB.Command 'ADO命令 BILL_CON = "Provider=Microsoft.Jet.OLEDB.4.0; billconn.Open BILL_CON Set billcmwww.shengfang.orgd.ActiveConnection = billconn billrs.CursorLocation = adUseClient billcmd.CommandText = "select * from eee" billrs.Open cmd, , adOpenDynamic,adLockOptimistic 上述代码就是打开一个数据库并执行一条查询命令 billrs.Closewww.shengfang.org Set billrs = Nothing Set billcmd =Nothing billconn.Close Set billconn = Nothing 一般这个方法比www.shengfang.org较容易控制,介绍也比较多,这里不多做解释了 With ado .Connecwww.shengfang.orgtionString = BILL_CON .CommandType = adCmdText .RecordSource = "select * from eee" .Refresh Set grid.www.shengfang.orgDataSource = ado grid.Refresh End With 我制作的一个软件www.shengfang.org,主界面使用ADO和DBGIRD绑定显示一个数据库,同时也定义了一个连接用来自行一些更新的SQL语句。大家也知道,如果在 Access 数据库中删除了多条记录,数据库并不会变小,必须进行压缩。所以我在界面上添加了一个菜单:压缩数据库。 1、增加引用:Microsoft Jet and Replication Objects 2、增加了如www.shengfang.org下代码: et JR = New JRO.JetEngine conn.Close JR.CompactDatabwww.shengfang.orgase "Provider=Microsoft.Jet.OLEDB.4.0;Data conn.Open ADO_CON Set JR=Nothing 结果运行后总是报错: 实时错误 -21474www.shengfang.org67259 80004005 尝试打开的数据库已被机器 ‘’ 上的用户 ‘’ 以排它的方式打开。当数据库可使用后请再试一次 首先我想既然www.shengfang.org打开是给.ConnectionString 、RecordSource 赋值后调用REFRESH方法,应该可以将其赋为空字符串后REFRESH也可以。 运行后,出现如下提示框: 未发现数据源名称 虽然压缩操作可www.shengfang.org以正常执行,但是弹出这么一个对话框对程序也不合适,经过反复调试,终于找到了方法:将ADO控件的.ConnectionString 、RecordSource属性赋值为空;释放Recordset对象。缺少一个操作都会出现上述对话框提示。最后的代码如下: struser = AdoUser.RecordSource ‘先保存当前的RecordSource属性 AdoUser.Recordset.Close ‘关闭Recordset对象 AdoUser.ConnectionString = "" ‘赋值为空 AdoUser.RecordSource = "" Set AdoUwww.shengfang.orgser.Recordset = Nothing ‘释放Recordset对象 Dim JR As JRO.JetEngine Set JR = New JRO.JetEngine conn.Close JR.Compawww.shengfang.orgctDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +_ conn.www.shengfang.orgOpen ADO_CON ‘重新打开自定义连接 Set JR = Nothing ‘释放JR对象 AdoUser.ConnectionString = ADO_CON ‘重新设置ADO控件的属性 AdoUser.Refresh ‘重新刷新 字体:大 中 小 |
![]() | 永久地址 http://www.shengfang.org/blog/p/adoopenclose.php |
![]() | 引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1109564267 |
2005年2月28日12:17星期一 [Dev开发]





