程序需要连接sql server,但每次在启动程序前需要使用“开始->运行->\\计算机名“,然后输入用户名和密码的方式在windows窗口中打开服务器所在的那台电脑,程序才能正常连入sql server。我试了一下,在“运行”中输入“\\计算机名 用户名 密码”,可以一口气直接打开服务器所在的那台电脑,不会出现连接密码对话框。我想把打开服务器电脑的这个过程加入程序代码中,这样用户会没这么麻烦。同时希望打开服务器电脑的窗口不要出现,所以在程序启动时加入代码:
“winexec(PChar('\\计算机名 用户名 密码'),SW_HIDE);”
但是无效,因为执行这句后,程序依然无法连接数据库,感觉是没能打开服务器电脑。在线等待高手解答

解决方案 »

  1.   

    SQL server是可以通过“TCP\命名管道”两种方式访问的,假如你使用ADO访问技术,则根本不需要连接前先登录服务器,用户名与密码也可以在ADOConnetion的属性中设置,还有一种技术,就是使用Microsoft的数据库连接文件.UDL,你随便建一个文本文件,然后把.TXT改为.UDL,你就可以看见效果了
      

  2.   

    hxy74(hxy) :
    我就是用的ado啊,而且你说的我都知道!而且我是通过连接字符串的方式连接的。
    现在的问题是如果不通过上述运行的方式预先打开服务器电脑,程序根本连接不上去,会出现超时的情况,感觉就象网络不通的样子。也就是说只有通过网络打开了服务器电脑,程序运行才能正常。原来不用这样都一切正常,后来不知什么原因就出现了如此故障。
      

  3.   

    利用ADOCONNECT就可以了,当然也可以通过三方的COM组件
      

  4.   

    sohoiam() :
    感谢你的回答,不过似乎没看清我的问题,^_^
      

  5.   

    利用ADO,并使用IP地址进行实现!
      

  6.   

    命名管道连接有问题!
    用户必须有连接到\\<Computername>\IPC$的权限
    1.是否GUEST用户被禁用
    2.在组策略中设置了禁止从网络访问计算机的选项
      

  7.   

    应该是你的客户机和服务器的用户使用权限上面有冲突,导致不能访问服务器的sql server
      

  8.   

    是不是那个SQLServer上登陆验证的问题?我一直用混合验证方式,用Ado登陆从来没有出现你那个问题!
      

  9.   

    liangpei2008(逍遥叹) :
    guest用户处于活动状态。
    不方便去操作那台服务器,既然原来一直都可以用,应该没人修改组策略
      

  10.   

    我也不知道怎么才能使用TCP协议,而不使用命名管道来连接服务器,但是如果你说的正确的话,你可以使用net use \\ipaddress password /USER:来连接服务器.
    “winexec(PChar('net use \\ipaddress password /USER:'),SW_HIDE);”
      

  11.   

    感谢 hxfjb(New人) 
    我结贴了....~_~