Delphi+SQLserver,我做了数据库连接的测试和注册的窗口,注册,就是把连接数据库信息如数据库服务器名称,IP,登录名,密码写到注册表中,下次便读这信息登录,如下:
 try
   reg:=TRegistry.Create;
   reg.RootKey:=HKEY_LOCAL_MACHINE;
   reg.OpenKey('\software\microsoft\msSQLServer\client\connectto',true);
   reg.WriteString('DSQuery','DBNETLIB');
   reg.WriteString(Trim(ed_server.Text),'DBNETLIB,'+Trim(ed_ip.text)+',1433');
   reg.CloseKey;
   reg.OpenKey('\software\EquipMgr',true);
   reg.WriteString('ServerName',Trim(ed_server.text));
   reg.writestring('LoginName',Trim(ed_name.text));
   reg.writestring('LoginPwd',addkey(ed_pwd.text));
   reg.CloseKey;
   reg.free;
except
   messagebox(handle,'注册失败!','提示',mb_ok+mb_iconinformation);
        //注册失败就要删除上面注册表的添加的键
        {
            //.......
        }
   exit;
end;
问题:当我写入注册表后,再去连接数据库就连接不上,错误提示:[DBNETLIB](ConnectionOpen(conection())..]SQL server 不存在或拒绝访问.      就连不上了,当我删除
        reg.WriteString('DSQuery','DBNETLIB');
       reg.WriteString(Trim(ed_server.Text),'DBNETLIB,'+Trim(ed_ip.text)+',1433');
这两个键之后,便就马上可以连接上!
    
   请问:这是为什么,应该怎么改呀,谢谢各位

解决方案 »

  1.   

    如果客户端没装sqlserver的话就把
      Dbmssocn.dll    TCP/IP 支持文件 
       Dbmsspxn.dll    IPX 支持文件 
       Dbnmpntw.dll    命名管道支持文件 
       Ntwdblib.dll    SQLServer核心文件(这个文件最重要) 
    这4个文件复制到system目录,
    并在注册表添加:
     HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\ConnectTo:
       加入如下字符串值:
          建名         键值   
         servername   DBMSSOCN,servername,1433
                                  ^^ 服务器名称,也可以使ip
      

  2.   

    DBMSSOCN,DBNETLIB这两个有什么区别,因为开始是写的这个DBMSSOCN,发现有问题,后来看其它机子上就用了这个,就改写了这个,还是一样/
    楼上啊,我的机子当然装了,如今还在做呀,我的问题到底是什么回事哦,怎么解决呢。谢谢!
      

  3.   

    装了那就不需要再这么注册了,配置一下客户端的服务器网络实用工具中的Net-Library就行了
      

  4.   

    我第一次用哦,许多地方,不清楚。假如用户端没有装SQL server,就只要加那几个dll文件,和注册表就行了吗?那我怎么去配置服务器哦。
      

  5.   

    用ADOConnection连接,可以设ConnectionString, 无需再配置, 比如
    ConnectionString :='Provider=SQLOLEDB.1;Password=hhsm;Persist 
                                                       |_数据库密码
    Security Info=True;User ID=sa;Initial Catalog=hhbsnew;Data 
                                |_数据库用户名        |_数据库名
    Source=192.168.3.196'
               |_数据库服务器的IP或计算机名ConnectionString := 'Provider=SQLOLEDB.1;Password=hhsm;Persist Security Info=True;User ID=sa;Initial Catalog=hhbsnew;Data Source=192.168.3.196'