为什么有时用命名管道无法连接,用TCP/IP就可以?

解决方案 »

  1.   

    装delphi的机器装了sql2000的客户端了吗
      

  2.   

    只安装了SQLSERVER7,且没有启动服务。需要安装SQLSERVER2000吗?如果是,那么给客户安装时也要每台机子皆装?
    to hellion:按你的方法能连上了,可一运行程序就提示“表只读”出错,又是为何?
      

  3.   

    sql2000的桌面版和个人版(还有sql7的桌面版)好像都不能用命名管道协议连通,
    用tcp/ip可以的,我现在就是这样在用
      

  4.   

    “表只读”是我程序上的问题,已经解决并能正常连接,多谢hellion兄!
    现在还有个问题就是在DELPHI中欲用TCP/IP连接应该如何设置?因为若是在服务器给每个客户机设立用户有点不爽!或者还有解决这个问题的办法?
    snjun兄的问题我没碰到过,我用的是SQLSERVER2000开发人员版和SQLSERVER7标准版,也多谢了!
      

  5.   

    在ODBC中连数据库时在DSN配置一页中按一下“客户端配置”按钮,在左边选中TCP/IP即可
      

  6.   

    我在ODBC数据源管理器(我的系统是2000服务器版)作了lldwolf所指点的设置,但在设置DELPHI里的database属性时,无论是设置SERVERNAME还是HOSTNAME为SQL服务器的局域网IP地址时依然无法连接,又是为何?
    再请教各位!
      

  7.   

    如果用ADO访问数据库得话,只要在程序中重新配置ADOQUERY(...)的连接字符串ConnectionString即可,将SQL SERVER属主的机器名称更改一下。
    假设客户的服务器名称为:SERVER02,则在程序中更改ConnectionString为:
    可以将该连接字符串定义为全局变量,放在系统初始化程序中。
    ...
    var 
      strServerName,ADOCnStr:string;...//initialize
    begin
        ...
        strServerName := 'Server02';
        ADOCnStr := 'Provider=SQLOLEDB.1;' +
                        'Integrated Security=SSPI;' +
                        'Persist Security Info=False;' +
                        'Initial Catalog=MyDB;' +
                        'Data Source=' + strServerName;   ...
       ADOQuery1.ConnectionString := ADOCnStr;
       ...
    end;//
    其中Data Source就是SQL SERVER服务器的名称,根据需要改变它不就行了么。