英国bcc大楼:Provider=SQLOLEDB.1

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 00:28:36
Provider=SQLOLEDB.1是什么意思 ?
在连接数据库中的代码
<%
on error resume next
'dim startime,
startime=timer()
Set conn= Server.CreateObject("ADODB.Connection")
conn.open "Provider=SQLOLEDB.1; server=C354435108B14B6;database=flower; uid=sa; pwd=sa;"
conn.open connstr
%>这是用ODBC访问数据库么?是怎么操纵数据源的?

strerror = Err.Description
Set CN = Nothing
Set rs = Nothing
Set GetRecordset = Nothing
End Function
Public Function ExcuteCmd(strSQL As String) As Boolean '执行无返回的SQL语句
On Error GoTo ErrorHandler
Dim CN As ADODB.Connection
Dim CMD As New ADODB.Command
Set CN = Connect()
If (CN Is Nothing) Then
GoTo ErrorHandler
End If
CMD.ActiveConnection = CN
CMD.CommandText = strSQL
CMD.CommandType = adCmdText
CMD.Execute
ExcuteCmd = True
Set CN = Nothing
Set CMD = Nothing
Exit Function
ErrorHandler:
ExcuteCmd = False
strerror = Err.Description
Set CN = Nothing
Set CMD = Nothing
End Function

问题补充:
非常感谢二位提供的代码.我用"有始有终"朋友的代码.基本实现了SQL数据库的连接,但我还想请教一下.
用你的QueryExt函数返回数据库后,是不是没有断开与数据库的连接?如果在多用户系统上,这样一直连接着数据库,是否会存在数据库负荷问题?
请加我的QQ:2303507
希望在以后能得到你们的帮助!

提问时间: 2006-06-15 21:36:59

回答:有始有终
学长
6月16日 11:38 '数据源信息常量
Public Const conn As String = "Provider=SQLOLEDB.1;Password=sa;User ID=sa;Initial Catalog=StudentFiles;Data Source=localhost;"
'一次执行connect操作可以访问数据库的次数
Public Const CONNECT_LOOP_MAX = 10

'== 标记数据库是否连接 ==
Private IsConnect As Boolean
'== 标记执行Connect()函数后,访问数据库的次数 ==
Private Connect_Num As Integer
Private cnn As ADODB.Connection '连接数据库的Connection对象
Private rs As ADODB.Recordset '保存结果集的Recordset对象

'连接数据库
Private Sub Connect()
'如果连接标记为真,则返回。否则会出错
If IsConnect = True Then
Exit Sub
End If

'关键New用于创建新对象cnn
Set cnn = New ADODB.Connection
'设置连接字符串ConnectionString属性
cnn.ConnectionString = conn
'打开到数据库的连接
cnn.Open
'判断连接的状态
If cnn.State <> adStateOpen Then
'如果连接不成功,则显示提示信息,退出程序
MsgBox "数据库连接失败"
End
End If

'设置连接标记,表示已经连接到数据库
IsConnect = True
End Sub

'断开与数据库的连接
Private Sub Disconnect()
Dim Rc As Long
'如果连接标记为假,标明已经断开连接,则直接返回
If IsConnect = False Then
Exit Sub
End If
'关闭连接
cnn.Close
'释放cnn
Set cnn = Nothing
'设置连接标记,表示已经断开与数据库的连接
IsConnect = False
End Sub

'使用Connect_Num控制数据库连接
Public Sub DB_Connect()
Connect_Num = Connect_Num + 1
Connect
End Sub
Public Sub DB_Disconnect()
If Connect_Num >= CONNECT_LOOP_MAX Then
Connect_Num = 0
Disconnect
End If
End Sub
'强制关闭api方式访问的数据库,计数器复位
Public Sub DBapi_Disconnect()
Connect_Num = 0
Disconnect
End Sub

'执行数据库操作语句
Public Sub SQLExt(ByVal TmpSQLstmt As String)
'创建Command对象cmd
Dim cmd As New ADODB.Command

'连接到数据库
DB_Connect
'设置cmd的ActiveConnection属性,指定与其关联的数据库连接
Set cmd.ActiveConnection = cnn
'设置要执行的命令文本
cmd.CommandText = TmpSQLstmt
' MsgBox TmpSQLstmt
'执行命令
cmd.Execute
'清空cmd对象
Set cmd = Nothing
'断开与数据库的连接
DB_Disconnect
End Sub

'执行数据库查询语句
Public Function QueryExt(ByVal TmpSQLstmt As String) As ADODB.Recordset
'创建Recordset对象rst
Dim rst As New ADODB.Recordset

'连接到数据库
DB_Connect
'设置rst的ActiveConnection属性,指定与其关联的数据库连接
Set rst.ActiveConnection = cnn
'设置游标类型
rst.CursorType = adOpenDynamic
'设置锁定类型
rst.LockType = adLockOptimistic
'打开记录集
rst.Open TmpSQLstmt
'返回记录集
Set QueryExt = rst
End Function