我已经把BDE通过InstallShield10.5打包好了,在安装有SQl server2000的机子上可以运行,但是在没有安装SQL Server2000的机子上总是提示:未装载Db_Library通信网络层,我的包中已经包含dbnmpntw.dll和ntwdblib.DLL两个文件,各位大侠帮忙啊!

解决方案 »

  1.   

    如果你的数据库是SQl server2000,必须把SQl server2000打包发布。你查哈,这方面资料不少。
      

  2.   

    我说的是客户端,服务器端我已经装上SQL Server了,客户端是上面的情况,我觉得客户端不应该要装sql server吧。可能是缺少某些文件。
      

  3.   

    在程序中加一个更改注册表的:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo
    在上面的位置中建立:
    数值名:  t_newcoredb(你的联接数据库服务器的别名也可以用IP地址)
    数值数据:DBMSSOCN,192.168.122.101,1433
    用别名的好处是,当你数据库安装在其它机器中,只要建立别名一样就行不用改程序了。你可以自己在程序中加一段写注册表的程序如下:放在程序最开始启动时执行就行,这样客户端不用装SQLSERVER了const
      keyString: string = '\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo';
    var
      RegKey:TRegistry;
    begin
      RegKey := tregistry.Create;
      try
        RegKey.RootKey := HKEY_LOCAL_MACHINE;
        begin
          RegKey.OpenKey(keyString,True);
          RegKey.WriteString('DBMSSOCN,192.168.122.101,1433');
        end;
      finally
        RegKey.CloseKey;
        Regkey.Free;
      end;
    end;
      

  4.   

    RegKey.WriteString('别名或IP','DBMSSOCN,192.168.122.101,1433');
    写错了,不好意思
      

  5.   

    zxf_feng(阿日) 好像不行啊。还是提示那样的错误。
      

  6.   

    搞定了,缺了几个dll。更改注册表没有通过,还是感谢zxf_feng(阿日)