在VB6+SQL Server2000,局域网环境下运行的公司办公系统,远程登录正常(说明数据库连接没有问题),但是打开任何一个包含有MSHFlexGrid控件的窗体时会出现SQL信任连接的提示窗口,点确定程序无响应,点取消运行正常,并且直到关闭程序为止,再打开任何一个带有MSHFlexGrid控件的窗体都不再出现信任连接的提示窗,请问有没有高手知道如何解决,程序相关代码如下。================================================================Private Sub MDIForm_Load()
        On Error GoTo ShowErrMsg
        LblUserName.Caption = "未知"
        LblUserClass.Caption = "未知"
        LblTime.Caption = CStr(Now())
        Dim ConnStr As String
        Dim Conn As ADODB.Connection
        Dim Rs_c As ADODB.Recordset
        Set Conn = New ADODB.Connection
        Set Rs_c = New ADODB.Recordset
        ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\property.dll;Persist Security Info=False"
        Conn.Open ConnStr
        Rs_c.Open "select top 1 * from config order by id desc", Conn, 1, 3
        If Not Rs_c.EOF Then
           Sqlname = Decode(Rs_c("a"))
           Sqluser = Decode(Rs_c("b"))
           Sqlpwd = Decode(Rs_c("c"))
           Sqlip = Decode(Rs_c("d"))
        End If
        Rs_c.Close
        Set Rs_c = Nothing
        Conn.Close
        Set Conn = Nothing
        ''''''SQL连接字符串
        CnStr = "Provider=SQLOLEDB.1;Network Library=DBMSSOCN;Persist Security Info=True;User ID=" & Sqluser & ";Password=" & Sqlpwd & ";Initial Catalog=" & Sqlname & ";Data Source=" & Sqlip
        '''''''是不是这里对DataEnvironment操作时出问题?
        De.Conn.ConnectionString = CnStr
        OpenDb
        Rs.Open "select top 1 * from Config order by id desc", Cn, 1, 3
        If Not Rs.EOF Then
           If Rs("ver") > CCur(App.Major & "." & App.Minor & App.Revision) Then
              MsgBox "最新程序版本[ " & Rs("ver") & " ]已经内测通过,请向行政部索要!"
           End If
        End If
        Rs.Close
        
        If LoginUser = "" Then
           Toolbar1.Enabled = False
           Frm_Login.Show
        End If
        
Exit Sub
ShowErrMsg:
   If Err.Number <> "-2147220992" Then
      MsgBox Chr(13) & _
             "出错代码:" & Err.Number & Chr(13) & _
             "错误描述:" & Err.Description & Chr(13) & _
             "可能原因:" & Chr(13) & _
             "           1> 可能是您机器的网络原因,请检查上网是否正常" & Chr(13) & _
             "           2> 如果安装有网络防火墙,请检查其设置是否合理" & Chr(13) & _
             "           2> 如果能正常上网,可能远程数据服务器出了问题" & Chr(13) & _
             "           3> 出于数据安全考虑,可能管理员更改了登录权限", vbCritical, "连接远程数据库失败"
   End
   End If
   
End Sub====================================================================

解决方案 »

  1.   

    我也曾经遇到这样的问题:虽然你用ADO方法与SQLServer建立连接,但还是不稳定,请在你的客户端安装SQLServer客户端,或者在客户端安装sqlredis.exe ,这个安装文件在SQLServer2000安装盘上可以找到,你试试吧?
      

  2.   

    但是打开任何一个包含有MSHFlexGrid控件的窗体时会出现SQL信任连接的提示窗口
    //我不清楚你这话什么意思,注意了一下你的连接字符:N`rsist Security Info=True,这个似乎我很少看见 还有,VB和VB.NET不同,VB的connection虽然消耗资源,如果没有封装DLL,最好是用全局变量,这是我第一个主管这么跟我讲,只要数据支持在最后,就connection一直打开,但是你的Connection和recodset全部只是定义成form_load的局部 msflexgrid本身读数据就慢,用additem的方法会快很多。
      

  3.   

    To:daisy8675(莫依) 
        引用:但是你的Connection和recodset全部只是定义成form_load的局部
        
        我非常认同你的观点,在我的程序里也是用的全局变量,你所提及的只是我读取客户端的ACCESS数据库里面里所存放的远程SQL连接的帐号密码等加密信息用的。    我现在想知道的是出现我在主题中所提及问题的原因及解决办法。