大家好,我有一个问题想请教一下大家:就是关于MYSQL和VB通过ODBC建立连接的问题,为什么文件MSDN建立不成功呢?系统报错:“使用已输入的文件数据源参数不能生成一个连接。”为什么?
还有,我这样连接了一下:
Public Function connectdatabase() As String '连接数据库函数
' connectdatabase = "FileDSN=login.dsn;UID=sa;PWD="
'connectdatabase = "UserDSN=champion.dsn;UID=root;PWD="
connectdatabase = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=localhost;" _
& "DATABASE=champion;" _
& "UID=root;PWD=; OPTION=3"
End Function 也可以,不过在通过SQL 语句查询时有问题:
Public Function executesql(ByVal mysql As String, msgstring As String) As ADODB.Recordset
Dim conn As ADODB.Connection
Dim reset As ADODB.Recordset
Dim stokens() As String '定义一个一维数组
On Error GoTo execute_error
stokens = Split(mysql)
Set conn = New ADODB.Connection
conn.Open connectdatabase
On Error Resume Next
If InStr("INSERT,DELETE,UPDATE", UCase$(stokens(0))) Then 'ucase()是一个小写转大写字母的函数
conn.Execute mysql
msgstring = stokens(0) & "query successful"
Else
On Error Resume Next
Set reset = New ADODB.Recordset
reset.Open Trim$(mysql), conn, adOpenKeyset, adLockOptimistic
Set executesql = reset
msgstring = "查询到" & reset.RecordCount & "条记录"
End If
executesql_exit:
Set reset = Nothing
Set conn = Nothing
Exit Function
execute_error:
msgstring = "查询错误: " & Err.Description
MsgBox msgstring
Resume executesql_exit
End Functionreset.RecordCount的值总是-1
请大家帮一下忙,问题解决后给高分!!!
还有,我这样连接了一下:
Public Function connectdatabase() As String '连接数据库函数
' connectdatabase = "FileDSN=login.dsn;UID=sa;PWD="
'connectdatabase = "UserDSN=champion.dsn;UID=root;PWD="
connectdatabase = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=localhost;" _
& "DATABASE=champion;" _
& "UID=root;PWD=; OPTION=3"
End Function 也可以,不过在通过SQL 语句查询时有问题:
Public Function executesql(ByVal mysql As String, msgstring As String) As ADODB.Recordset
Dim conn As ADODB.Connection
Dim reset As ADODB.Recordset
Dim stokens() As String '定义一个一维数组
On Error GoTo execute_error
stokens = Split(mysql)
Set conn = New ADODB.Connection
conn.Open connectdatabase
On Error Resume Next
If InStr("INSERT,DELETE,UPDATE", UCase$(stokens(0))) Then 'ucase()是一个小写转大写字母的函数
conn.Execute mysql
msgstring = stokens(0) & "query successful"
Else
On Error Resume Next
Set reset = New ADODB.Recordset
reset.Open Trim$(mysql), conn, adOpenKeyset, adLockOptimistic
Set executesql = reset
msgstring = "查询到" & reset.RecordCount & "条记录"
End If
executesql_exit:
Set reset = Nothing
Set conn = Nothing
Exit Function
execute_error:
msgstring = "查询错误: " & Err.Description
MsgBox msgstring
Resume executesql_exit
End Functionreset.RecordCount的值总是-1
请大家帮一下忙,问题解决后给高分!!!
conn.CursorLocation = adUseClient
conn.Open connectdatabase