Public Function ExecuteSQL(sql As String) As ADODB.Recordset
Dim cn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim msg As String
On Error GoTo executesql_error
Set cn = New ADODB.Connection
cn.Open "Driver={SQL Server};Server=LPY;Uid=sa;Pwd=;database=CY"
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), cn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
executesql_exit:
Set rst = Nothing
Set cn = Nothing
Exit Function
executesql_error:
msg = "错误原因:" & Err.Description
Resume executesql_exit
End Function
我是用上诉语句进行数据库连接的 ,开发环境是VB6.0+Win2K Server +  SQL server2000 企业版
但为什么 在WIN98下(装的是SQL 个人版)无法进行连接呢???难道这样连接不可以么???
还有就是 在WIN2K Professional(装的是SQL个人版)也无法进行连接 ,这样也不可以么???
如何才可以解决这个问题???
谢谢大家了

解决方案 »

  1.   

    cn.Open "provider=SQLOLEDB;Server=LPY;Uid=sa;Pwd=;database=CY"
      

  2.   

    可能是用ado控件连接时自动生成的字符串与题目给出的字符串不符
    应该将自动生成的字符串复制下来把它加在
    cn.Open “”中的双引号内即可。
    或者是sql server 的组件没有安装完整吧
      

  3.   

    Private Sub cmd_restore_Click()
    sta.Visible = True
    sta.Panels(1).Text = "目前正在恢复数据库,请稍后、、、"
    On Error GoTo error
    Dim cn As ADODB.Connection
    Dim s_restore As String
    Shell "scm -silent 1 -action 2  -service mssqlserver " 'Specfied sqlserver service
    Sleep 20000
    Set cn = New ADODB.Connection
    cn.Open "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=CY"
            s_restore = "restore database CY from disk='" & txt_rroute.Text & "'" 'd:\VB\监控系统\客户端\jkxt.bak'"
            cn.Execute s_restore
    cn.Close
    txt_rroute.Text = ""
    txt_rroute.SetFocus
    If MsgBox("恭喜、恭喜,您恢复数据库成功~!~,但需您重新登陆,给您带来不便请原谅~!~", vbInformation + vbOKOnly, "恢复成功") = vbOK Then
    End
    End If
    error:
    MsgBox "您输入的文件不正确,请重新输入~!~", vbInformation + vbOKOnly, "警告"
    txt_rroute.Text = ""
    txt_rroute.SetFocus
    cmd_restore.Enabled = False
    sta.Panels(1).Text = ""
    Exit Sub
    End Sub
    这是我的数据库还原代码,在我的机器上就可以但在其他的机器上就不行啊,为什么 啊??
    谢谢大家啊
      

  4.   

    第一个程序我在自己的机器上试了一下,是没有问题的,估计你那里出错的原因有可能是在安装SQL SERVER时选择了WINDOWS NT身份验证,如果选择混合模式可能就没事了第二个还没搞清楚如方便的话,请回我QQ