当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 在VB6中动态创建使用ADO控件访问数据库

ASP.NET
AspNetPager与Socut.Data使用方法
asp.net UpdaeProgress的简单用法
asp.net ajaxControlToolkit ValidatorCalloutExtender的简单用法
asp.net 简易生成注册码(数字+大小写字母)
asp.net中利用ashx实现图片防盗链代码
ASP.NET程序中常用代码汇总
ASP.NET 2.0/3.5中直接操作Gridview控件插入新记录
ASP.NET Ajax级联DropDownList实现代码
ASP.NET 2.0写无限级下拉菜单
asp.net Web Services上传和下载文件(完整代码)
asp.net DataGrid控件中弹出详细信息窗口
Asp.NET 多层登陆实现代码
利用Asp.Net回调机制实现进度条
ASP.NET Ref和Out关键字区别分析
Javascript调用Webservice的多种方法
.Net下的签名与混淆图文分析
.Net Compact Framework开发小技巧 推荐
.Net连接Oracle数据库的实现代码
js获取.aspx页面里面的服务器控件和.ascx中的服务器控件值
asp.net下 jquery jason 高效传输数据

ASP.NET 中的 在VB6中动态创建使用ADO控件访问数据库


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 67 ::
收藏到网摘: n/a

在VB6中动态创建使用ADO控件访问数据库
使用ADO控件可以方便的在VB6中访问ODBC数据库,但是通过直接放置ADODS控件来获得ADO的数据连接比较麻烦,我们可以在VB工程中创建一个公共数据模块,将ADO控件的初始化、建立连接、关闭连接等操作都写到函数中,这样就可以在工程的其他模块中共享调用这个ADO连接。
一次完整的ADO调用操作分为如下几个步骤:打开ADO到数据库的连接,初始化ADO RECORDSET集。通过写入SQL语句执行查询并返回查询结果RECORDSET集;或者可以通过写入SQL语句执行相应数据库操作。释放RECORDSET集,关闭数据库连接。
需要注意的是,每个动态创建的ADO同时只能被一个过程调用,如果需要进行多表并行操作,可能需要在公共数据模块中建立多个动态ADO。
下面是相关的代码:
'-----------------------------------------------------------------
'如下代码保存在名为my.bas的工程模块中
Public CONN As Adodb.Connection '定义ADO CONNECTION对象Public RS As Adodb.Recordset '定义ADO RECORDSET对象
'****************************'打开数据库连接'****************************Function ConnOpen() Dim ASTR As String Set CONN = New Adodb.Connection ASTR = GetDatabasePath 'MDB文件数据库路径
CONN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ASTR & ";Persist Security Info=False" '本例的ODBC连接为JET4.0的直接到MDB文件的连接,如果使用ODBC数据源可以使用如下CONNECTION串: 'Provider=MSDASQL.1;Password="";Persist Security Info=True;Data Source=数据源名称;Initial Catalog=数据表库名称

CONN.Open
Set RS = New Adodb.Recordset
With RS Do ActiveConnection = CONN CursorType = adOpenDynamic LockType = adLockOptimistic End WithEnd Function
'****************************'关闭数据库'****************************Function ConnClose() Set RS = Nothing CONN.Close Set CONN = NothingEnd Function
'**********************************************************' 获得数据库路径' 本例数据库保存在程序目录下的DBS子目录中,名为db1.mdb'**********************************************************Public Function GetDatabasePath() As String Dim sPath As String If Right$(App.Path, 1) = "\" Then sPath = App.Path + "dbs\" Else sPath = App.Path + "\dbs\" End If GetDatabasePath = sPath + "db1.mdb"End Function
'End of my.bas'-----------------------------------------------------------------
如下示例代码为my.bas的使用方法:'-----------------------------------------------------------------'使用RS对象执行SELECT语句'TableName和FieldName分别为表名和字段名'查询结果保存在数组s中Private Sub RunSelectCommand() Dim s(99) as String Dim i as Integer i=0 Call my.ConnOpen my.RS.Open "SELECT * FROM TableName" While Not RS.EOF i=i+1 If Not isNull(my.RS!FieldName) Then s(i)=Cstr(my.RS!FieldName) RS.MoveNext Wend Call my.ConnCloseEnd Sub
'使用CONN对象执行UPDATE/DELETE/INSERT语句'SQL语句放在变量sSQL中Private Sub RunSqlCommand() Dim sSQL as String Call my.ConnOpen my.CONN.Execute sSQL Call my.ConnCloseEnd sub
'对于DATAGRID和DATAREPORT这些需要DATASOURCE的控件可以做如下操作'使用SELECT语句打开RS的数据集Set OBJ.Datasource=my.RS'---------------------------------------------------------------------
这个方法对于开发简单小型的MIS系统很实用,也可以在报表和数据表中使用,缺点是在多表操作和函数嵌套调用时,一个动态ADO对象不能同时执行两个工作,后一个写入的SQL语句会覆盖先写入的SQL语句,当在回到前一个过程时,会因为字段找不到而出错。因此如果可能需要进行多表操作,可以尝试多定义几个CONN 和RS对象。