我的写了一个应用程序,要连接sqlserver数据库,可是我把应用程序考到别的电脑上,并且把数据库业恢复过去,在odbc里面添加了一个一样的别名,但是我运行应用程序的时候,就出现这个东西,
[DBNETLIB][connectionopen (connect()).]sql server不存在和拒绝访问
我用的adoconnect连接的的所有ado的数据集控件,把可执行的程序移到其他机子上,怎么和数据库连接,先谢各位了

解决方案 »

  1.   

    你是通过odbc 来连接的吗,不是直接设置adoconnection的adoconnectionstring属性吗?
    我想你变动了以后,连接控件的连接属性要从新设置,从新编译吧?
      

  2.   

    服务器名字是否一样
    sqlserver密码是否正确?sqlserver服务器是否启动?
      

  3.   

    你首先看一下PING一下你的服务器,看通不通啊,如果不通就是网络问题了,再看一下是不是服务器名,数据密码错误等啊,从多个方面去看一下吗?
      

  4.   

    服务器不一样了 比如说你原来是在A机器上做的,现在换到B机器上,但是数据库连接字符中DataSource还是A,如果A和B不在同一个局域网内,就会连接不到.根据你的情况,你可以在初始化连接数据库中这样写:
    function TUserInfor.GetLocalHostName: string;//获得本地计算机的名称!
    var
      ComputerName:pchar;
      Size: Cardinal;
      Re:Boolean;
    begin
         Size := MAX_COMPUTERNAME_LENGTH+1;
         Getmem(ComputerName,Size);
         {retrieve computer name}
         Re:=GetComputerName(ComputerName, Size);
         if re then
            result := StrPas(Computername)
         else Showmessage('没有发现机器名称!');
         Freemem(ComputerName);
    end;//ADOconnection的属性设置
     with ADOconnection do
     begin
        conn.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User     ID=sa;Initial Catalog=OFFICIAL;Data Source='+GetLocalHostName;
                            
        conn.Connected:=true;
     end
      

  5.   

    你的connectionstring的数据源还是原来机子的机器名,像楼上这位老哥这样做就可以了:)
      

  6.   

    感谢各位的指导与教诲
    to winxkm 非常感谢你的指导,谢谢