用ADO连接Sql server数据库
strCN="Driver={SQL Server};Server=服务器名;DataBase=数据库;UID=用户;PWD=口令;"
eg:SQL服务器名为 WEBSVR,数据库名为WebMis(在SQL Enterprise Manager中查看到),用户sa,口令123,则以上为:
dim cn as adodb.connection
set cn =new adodb.connection
dim strCn as string
strCN="Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;PWD=123;"
cn.open strCN
strCN="Driver={SQL Server};Server=服务器名;DataBase=数据库;UID=用户;PWD=口令;"
eg:SQL服务器名为 WEBSVR,数据库名为WebMis(在SQL Enterprise Manager中查看到),用户sa,口令123,则以上为:
dim cn as adodb.connection
set cn =new adodb.connection
dim strCn as string
strCN="Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;PWD=123;"
cn.open strCN
Option Explicit
Private madoConnection As New ADODB.Connection
Private mstrDBDSN As String
Private mstrDBUser As String
Private mstrDBNAME As String
Private mstrDBPWD As String
Private Sub Class_Initialize()
Debug.Print "JSMDB > Create Instance - Database Connection for SQL-Server"
mstrDBDSN = GetStringValue("HKEY_LOCAL_MACHINE\Software\JSM", "DSN")
mstrDBUser = GetStringValue("HKEY_LOCAL_MACHINE\Software\JSM", "UID")
mstrDBPWD = GetStringValue("HKEY_LOCAL_MACHINE\Software\JSM", "PWD")
mstrDBNAME = "JSM"
Call ConnectDB
End SubPrivate Sub Class_Terminate()
Call CloseDB
End Sub'*******************************************************************************************************
'* 过程名 : ConnectDB
'* 功能 : 生成连接
'* 作者 : 陈阳
'* 作成日期: 2002/12/3
'* 更新日期:
'* 备注 :
'*******************************************************************************************************Public Function ConnectDB() As Boolean Dim strConn As String
Debug.Print "JSMDB > Connect - SQL-Server Database"
On Error GoTo Err_ConnectDB
'连接字串生成
strConn = "Provider=MSDASQL;" & _
"DSN=" & mstrDBDSN & ";" & _
"DATABASE=" & mstrDBNAME & ";" & _
"User Id=" & mstrDBUser & ";" & _
"Password=" & mstrDBPWD & ";"
'连接文字列设定
madoConnection.ConnectionString = strConn
'超时设定
madoConnection.CommandTimeout = 0
madoConnection.ConnectionTimeout = 0
'连接
madoConnection.Open
ConnectDB = True
Exit Function
Err_ConnectDB:
'Error_Handler
Call RaiseError(Err, "clsDatabase.ConnectDB")
End Function
'*******************************************************************************************************
'* 过程名 : CloseDB
'* 功能 : 断开连接
'* 作者 : 陈阳
'* 作成日期: 2002/12/3
'* 更新日期:
'* 备注 :
'*******************************************************************************************************
Public Sub CloseDB() Debug.Print "JSMDB > Close - SQL-Server Database"
'切断连接
On Error Resume Next
madoConnection.Close
Set madoConnection = Nothing
End Sub
'*******************************************************************************************************
'* 函数名 : ExecuteSQL
'* 功能 : 执行SQL语句
'* 输入参数: p_strSQL --SQL语句
'* 返回值 : insert,delect语句分别返回插入和删除的纪录条数
'* 作者 : 陈阳
'* 作成日期: 2002/12/3
'* 更新日期:
'* 备注 :
'*******************************************************************************************************
Public Function ExecuteSQL(ByVal p_strSQL As String) As Long Dim lngRet As Long
On Error GoTo Err_Execute_SQL
Debug.Print "Database Execute SQL > " & p_strSQL
'SQL语句执行
madoConnection.Execute p_strSQL, lngRet
ExecuteSQL = lngRet
Exit Function
Err_Execute_SQL:
'ErrorHandler
Call RaiseError(Err, "clsDatabase.Execute_SQL")
ExecuteSQL = -1
End Function'*******************************************************************************************************
'* 函数名 : CreateRecordSet
'* 功能 : 生成RecordSet
'* 输入参数: p_strSQL --SQL语句
'* 返回值 : RecordSet
'* 作者 : 陈阳
'* 作成日期: 2002/12/3
'* 更新日期:
'* 备注 :
'*******************************************************************************************************
Public Function CreateRecordSet(ByVal p_strSQL As String) As ADODB.Recordset On Error GoTo Err_CreateRecordSet Dim adoRSTemp As New ADODB.Recordset
'获取RecordSet
adoRSTemp.Open p_strSQL, madoConnection, adOpenStatic, adLockOptimistic
'设置返回值
Set CreateRecordSet = adoRSTemp
Set adoRSTemp = Nothing
Exit Function
Err_CreateRecordSet:
'Error Handler
Call RaiseError(Err, "clsDatabase.CreateRecordSet")
End Function
'*******************************************************************************************************
'* 函数名 : CreateLockedRecordSet
'* 功能 : 生成锁定的RecordSet
'* 输入参数: p_strSQL --SQL语句
'* 返回值 : RecordSet
'* 作者 : 陈阳
'* 作成日期: 2002/12/3
'* 更新日期:
'* 备注 :
'*******************************************************************************************************
Public Function CreateLockedRecordSet(ByVal p_strSQL As String) As ADODB.Recordset On Error GoTo Err_CreateLockedRecordSet
Dim adoRSTemp As New ADODB.Recordset 'RecordSet取得
adoRSTemp.Open p_strSQL, madoConnection, adOpenKeyset, adLockPessimistic
If Not adoRSTemp.EOF Then
adoRSTemp.Update
End If
'设置返回值
Set CreateLockedRecordSet = adoRSTemp Exit Function
Err_CreateLockedRecordSet:
'Error Handler
Call RaiseError(Err, "clsDatabase.CreateLockedRecordSet")
End FunctionPrivate Sub RaiseError(p_Error As ErrObject, ByVal FuncName As String) Err.Raise vbObjectError + 513, FuncName, p_Error.Description
End SubPublic Property Get DatabaseObject() As Object
Set DatabaseObject = madoConnection
End PropertyPublic Property Let DatabaseObject(ByVal objNewValue As Object)
Set madoConnection = objNewValue
End Property