我在设置有ODBC机子上用delphi ADO连数据库是正常的
为什么在没有设置ODBC的的机子就连不到数据库呢,难道用ADO还要需要odbc的支持吗?

解决方案 »

  1.   

    我用的是slq server2000
    那么请问那要怎么样在裸机上用ado连数据库?
      

  2.   

    用连接串试一下,在connectionstring上赋值
    Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=数据库名;Data Source=主机名
      

  3.   

    给ADO一个连接字符串就可以了
    ADOConnection1.Connected := FALSE ;先关闭连接
    在connectionstring上赋值,
    ADOConnection1.connectionstring:= ‘Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=数据库名;Data Source=主机名’
    然后打开连接
    ADOConnection1.Connected := TRUE ;
    就OK了
      

  4.   

    ADO是不需要经过ODBC连接数据库的,它可以直接连接数据库,连接方法可以在ADOConnection的connectionstring属性中设置,也可以和上一楼那位仁兄说的那样,在程序中动态赋值建立连接
      

  5.   

    Provider=SQLOLEDB.1;Password=password;Persist Security Info=True;User ID=userid;Initial Catalog=gxinfo;Data Source=192.168.0.1;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=XINYING;Use Encryption for Data=False;Tag with column collation when possible=False我已经编译成exe了,在我的机子上(设有到192.168.0.1的odbc,装有sql server)能正常运行.但在同局域网内的机子(几乎是裸机)上就不能运行。
      

  6.   

    我以前也遇到过这种问题,后来改为ODBC连接,每台机器都配置一下ODBC就好了
      

  7.   

    可能跟你使用的数据库有关系
    这种情况应该升级你的ADO了
      

  8.   

    你的ADO连接的是ODBC数据源,那么在其他机器上一样要设置ODBC数据源。如果用ado直接连接数据库服务器则不用ODBC的设置
      

  9.   

    有没有动态通过程序设置系统odbc的方法??
      

  10.   

    请大家帮我看看我的这个Provider=SQLOLEDB.1;Password=password;Persist Security Info=True;User ID=userid;Initial Catalog=gxinfo;Data Source=192.168.0.1;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=XINYING;Use Encryption for Data=False;Tag with column collation when possible=False
    有问题吗?
      

  11.   

    [DBNMPNTW]ConnectionOpen (CreateFile())
    就是这个提示错误
      

  12.   

    用ADO应该没问题的,先用ODBC连一下,看通不通
    如果不通,可能是网络问题
    如果通了,还是程序的问题
      

  13.   

    楼主上面的连接应该是经过ODBC配置出来的,改用到没有ODBC的机子应该不能用;
     用 lywho(阿勇) 、bxh2dai(书虫&菜鸟) 兄的连接方式就不会错了
      

  14.   

    回楼上出错提示是:[DBNMPNTW]ConnectionOpen (CreateFile())有高人帮我解决吗?
      

  15.   

    1\odbc setting
    2\version of odbc drivers
      

  16.   

    这样还有错?楼主用的是什么数据库?
    同时打个ADO2.7的补丁吧
      

  17.   

    我是楼主我在网上找到的ConnectionOpen  (CreateFile()) 能帮我看看吗?
    就是这个错,在我的机子上能用ado连数据库(另一台机子),在别的机子上就不行
    -----
    6.错误信息:  
    Microsoft  OLE  DB  Provider  for  ODBC  Drivers  error  ''80004005''  
    [Microsoft][ODBC  SQL  Server  Driver][dbnmpntw]ConnectionOpen  (CreateFile()).  
    原因:  
    两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,  
    这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。  
    错误原因是:  
    当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,  
    另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。  
    这样它就不允许你访问它上面的资源,导致错误。  两个解决办法:  
    1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)  
    2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。  
      

  18.   

    我建议你首先安装一下MDAC2.7的补丁(现在最高好象是2.8)!然后在更新一下ODBC的驱动!那样可能问题就解决了!
      

  19.   

    建议看李维的《Delphi5.xADO_MTS_COM+高级程序设计篇》
      

  20.   

    给你个解决方法
            不用去配置ODBC,只要在程序安装时写一个注册表就行
    VAR
      Rego:TRegistry;
      Rego:=TRegistry.Create;
      with Rego do
      begin
        try
          RootKey:=HKEY_LOCAL_MACHINE;
          OpenKey('SOFTWARE\Microsoft\mssqlserver\client\connectTo',True);     WriteString('数据库服务器IP地址', 'DBMSSOCN,'+'数据库服务器IP地址');//注意DBMSSOCN代表使用的是TCP/IP协议
        finally
          Rego.Free;
        end;
       end;
      

  21.   

    去微软网站下个MDAC的升级包(目前版本是2.8),每个客户端装一下就可以解决了
      

  22.   

    不就是连SQL SERVER吗?。。有这么复杂吗?。
    配好驱动,找到服务器。用户名和密码。。不就可以了吗?