方法一:Public Function CheckSQL(SQLScript As String, SQLServer As String, _ UserName As String, PassWord As String, _ DataBase As String, Optional ErrDescription As String) As Long '========================================= '作用:检查SQL语句 '参数: ' SQLScript:要检查的SQL语句 ' SQLServer:要连接的SQL服务器 ' UserName:登录SQL的用户名 ' PassWord:登录SQL的密码 ' DataBase:要连接的SQL数据库 ' ErrDescription:错误描述 '返回值: ' Long类型,为0表示无错 '=========================================
UserName As String, PassWord As String, _
DataBase As String, Optional ErrDescription As String) As Long
'=========================================
'作用:检查SQL语句
'参数:
' SQLScript:要检查的SQL语句
' SQLServer:要连接的SQL服务器
' UserName:登录SQL的用户名
' PassWord:登录SQL的密码
' DataBase:要连接的SQL数据库
' ErrDescription:错误描述
'返回值:
' Long类型,为0表示无错
'=========================================
On erorr GoTo SqlErr
'设置数据连接
Dim cnnTmp As ADODB.Connection
Set cnnTmp = New ADODB.Connection
With cnnTmp
.ConnectionString = "Provider=SqlOledb.1;User Id=" & UserName & ";Password=" & PassWord & ";" & _
"Initial Catalog=" & DataBase & ";Data Source=" & SQLServer
.CursorLocation = adUseClient
.CommandTimeout = 30
.Open
.BeginTrans '开始事务,以免被检查语句为影响数据的操作,如insert、Delete、update等
.Execute SQLScript
.RollbackTrans '事务回滚
.Close
End With
Exit Function
SqlErr:
CheckSQL = Err.Number
ErrDescription = Err.Description
If cnnTmp.State = adStateOpen Then
cnnTmp.RollbackTrans '事务回滚
cnnTmp.Close
End If
End Function方法二:当然是自己写语法检查器喽,太累,不好方法一来得便捷