用VB做了一个管理系统,后台用Access数据库,一切查询都很正常没有问题,后来换成了SQL server2000数据库,有些查询就出现问题了,比如下面这条查询语句就出现了问题。
txtSQL = "select * from selectcourseinfo "
Set mrc = ExecuteSQL(txtSQL, MsgText)
ExecuteSQL函数是这样写的:
Public Function ExecuteSQL(ByVal Sql _
As String, MsgString As String) _
As ADODB.Recordset
'executes SQL and returns Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(Sql)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", _
UCase$(sTokens(0))) Then
cnn.Execute Sql
MsgString = sTokens(0) & _
" query successful"
Else
Set rst = New ADODB.Recordset '1, 1 '
rst.Open Trim$(Sql), cnn, _
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function
上面语句执行完成后,MsgText=“查询到-1条记录”
请高手指点,多给分
txtSQL = "select * from selectcourseinfo "
Set mrc = ExecuteSQL(txtSQL, MsgText)
ExecuteSQL函数是这样写的:
Public Function ExecuteSQL(ByVal Sql _
As String, MsgString As String) _
As ADODB.Recordset
'executes SQL and returns Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(Sql)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", _
UCase$(sTokens(0))) Then
cnn.Execute Sql
MsgString = sTokens(0) & _
" query successful"
Else
Set rst = New ADODB.Recordset '1, 1 '
rst.Open Trim$(Sql), cnn, _
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function
上面语句执行完成后,MsgText=“查询到-1条记录”
请高手指点,多给分
rst.CursorLocation = adUseClient