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

ASP.NET
Asp.net 时间操作基类(支持短日期,长日期,时间差)
asp.net 获取机器硬件信息(cpu频率、磁盘可用空间、内存容量等)
asp.net 数据库备份还原(sqlserver+access)
Asp.Net 数据操作类(附通用数据基类)
Asp.net 弹出对话框基类(输出alet警告框)
Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
Asp.net Socket客户端(远程发送和接收数据)
Asp.net 字符串操作基类(安全,替换,分解等)
Asp.Net数据输出到EXCEL表格中
asp.net Gridview里添加汇总行
asp.net UpdatePanel的简单用法
asp.net ajaxControlToolkit FilteredTextBoxExtender的简单用法
this connector is disabled错误的解决方法
sql事务应用积累
asp.net Page.Controls对象(找到所有服务器控件)
在asp.NET中字符串替换的五种方法
ASP.NET缓存方法分析和实践示例代码
asp.net 在DNN模块开发中遇到的resx怪问题
ASP.NET State service状态服务的问题解决方法
asp.net 结合mysql存储过程进行分页代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 199 ::
收藏到网摘: 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对象。