我有VB编写了一个软件。想直接利用SQL SERVER2000进行远程的数据访问。以实现客户端和服务器端的连接。但是只有在安装了SQL SERVER2000的电脑上才能正常登陆软件。没有安装SQL SERVER2000的电脑上就不能执行我的软件。是不是没有装SQL SERVER2000的电脑缺少相应的文件?缺的是那个文件?是不是将此文件考入没有安装SQL SERVER2000的电脑中就能运行我的软件了?请各位对SQL SERVER2000比较了解的朋友多多指教。比较着急,谢谢!

解决方案 »

  1.   

    不会阿,你不会采用的是dns连接吧
      

  2.   

    你登陆的 服务器名称 是不是写错了????你找一台 不是本服务器装SQL的机器也可以登陆????
      

  3.   

    错误提示应该贴出来,有没有引用SQLDMO
    或者打包没有把相关的引用打进去
      

  4.   

    没有错误提示。就是提示不能连接数据库。但是装了SQL SERVER2000的电脑就能很顺利的登陆。
      

  5.   

    Set AdoCon = New ADODB.Connection
    AdoCon.Open "Provider=sqloledb;Data Source='" & Trim(Text3.Text) & " ' ;Initial Catalog='" & Trim(Text4.Text) & " ';User Id=sa;Password="
    我是这样连接的数据库。
      

  6.   

    你是缺少驱动程序。缺少SQLServer部分的。这个在打包时应该会自动打包在内的,如果没有,那就得将其打包在内。
      

  7.   

    最前面那个啊.
    看看我的..
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SFData_jxc;Data Source=
      

  8.   

    嘿嘿,偶就知道了,你的客户端肯定是Win2000 Professional的。
    Professional不能直接访问服务器的SQL的,要利用WIN2000的IPC才能访问。(好象Win 2003也有这个问题,真晕的),上MicroSoft去下个补丁[Win2000 Professional的补丁]可以解决这个问题。另外偶一向习惯判断一下客户端的操作系统(Environ),然后发现是Win2000 Professional,就先登陆一下服务器:
    Private Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        pLocalName As Long
        pRemoteName As String 'Long
        pComment As Long
        pProvider As Long
    End Type
    Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPublic Sub ConnectServerShare(ServerName As String, UserName As String, PassWord As String) '对于一些必须连接一次服务器才能连接的的计算机采用先用程序连一次的方法
        On Error Resume Next
        Dim LL As NETRESOURCE
        With LL
            .pRemoteName = "\\" & ServerName'为SQL服务器所在的目录
            .dwType = 0
        End With
        WNetAddConnection2 LL, PassWord, UserName, 0'为SQL服务器所在机器的登陆名和密码
    End Sub不过呢,偶还是建议你不要这样做的好,还是作成C/S的比较好啦,至于C/S怎么做,在VB版块里查查啦。
      

  9.   

    .pRemoteName = "\\" & ServerName'为SQL服务器所在的机器名或者IP
      

  10.   

    samwzhang(分全给我)你的方法我没有看明白。还有请问在MicroSoft下载哪个升级补丁呢?
      

  11.   

    晕倒了,你还真麻烦。
    这样吧,也不要你弄那么清楚了。来个简单点的办法。
    1、在你的工程里加一个模块,里边的内容就是:
    Private Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        pLocalName As Long
        pRemoteName As String 'Long
        pComment As Long
        pProvider As Long
    End Type
    Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPublic Sub ConnectServerShare(ServerName As String, UserName As String, PassWord As String) '对于一些必须连接一次服务器才能连接的的计算机采用先用程序连一次的方法
        On Error Resume Next
        Dim LL As NETRESOURCE
        With LL
            .pRemoteName = "\\" & ServerName'为SQL服务器所在的机器名或者IP
            .dwType = 0
        End With
        WNetAddConnection2 LL, PassWord, UserName, 0'为SQL服务器所在机器的登陆名和密码
    End Sub
    2、然后在你的整个程序开始的地方,执行[只要执行这一次]:
    ConnectServerShare 192.168.0.1[SQL数据库所在的机器名或IP],Administrator[服务器登陆用户名,只要服务器开放的用户都可以,Guest都行],123456[前面那个用户名对应的密码]这样后面的SQL连接就能建立成功了,不用管客户端是否打过补丁[要不你每个客户端都要去打补丁,烦也烦死你]。
      

  12.   

    代码部分
    Private Sub cmdLogin_Click()
    ConnectServerShare "计算机名", "计算机登陆名", "计算机登陆密码"模块部分
    Private Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        pLocalName As Long
        pRemoteName As String 'Long
        pComment As Long
        pProvider As Long
    End Type
    Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPublic Sub ConnectServerShare(ServerName As String, UserName As String, PassWord As String) '对于一些必须连接一次服务器才能连接的的计算机采用先用程序连一次的方法
        On Error Resume Next
        Dim LL As NETRESOURCE
        With LL
            .pRemoteName = "\\" & ServerName '为SQL服务器所在的机器名或者IP
            .dwType = 0
        End With
        WNetAddConnection2 LL, PassWord, UserName, 0 '为SQL服务器所在机器的登陆名和密码*************************************************************************
    我按照你的方法把上述代码放入了程序中,但是有没有安装过SQL的电脑都不能访问了。而我自己的电脑却能登陆,求救阿!!
      

  13.   

    估计你的服务器的IPC服务被什么东西禁止掉了。
      

  14.   

    不会那末惨吧。有没有办法恢复阿。我机器有NORTON防火墙,不过已经给关闭了
      

  15.   

    而且,你的这个:
    ——————————————————
    Set AdoCon = New ADODB.Connection
    AdoCon.Open "Provider=sqloledb;Data Source='" & Trim(Text3.Text) & " ' ;Initial Catalog='" & Trim(Text4.Text) & " ';User Id=sa;Password="
    我是这样连接的数据库。
    ————————————
    这个写法好象也不妥当。
    你QQ我,我发一段程序给你参考。
      

  16.   

    检查你的ODBC里面的SQLSERVER驱动与未安装SQL Server的ODBC里面的SQLSERVER驱动的版本是否一致.