none
64bitWinXP下使用ADO的问题 RRS feed

  • 问题

  • 情况如下:32bit的WinXP上装了SQL 2005 EXPRESS,64bitWinXP上装了VS2005,在这上面开发了个访问数据库的小程序,访问32位XP上的数据库。用32bit编译后,ado访问数据库没有问题。但是同样的代码换成X64编译后,ADO就无法打开链接。

     

    在网上查了一些资料,http://blogs.msdn.com/b/sqlcrd/archive/2008/04/21/64-oledb-provider-for-odbc-msdasql.aspx看到这一往篇后,我很疑惑,64bitWinXP上没有64位的ADO可以使用吗?我的问题是哪的事,是不是要换到Win7才行(我还没有在Win7  64bit版上试,先来请教下)

    2010年8月20日 9:23

答案

  • 你的问题看上去和这篇KB一样:http://support.microsoft.com/kb/971987,原因是在64位的2003(XP)下面有默认的Provider,如果你要用ODBC的话,需要指定Provider为MSDASQL

    把connection string写成Provider=MSDASQL;Server=192.168.0.2;..."试试


    Shuhai Shen - I love programming, travel and photographing. Welcome to my blog: http://leonax.net
    2010年8月25日 17:01

全部回复

  • 请问无法打链接时,错误信息是什么?

    如果可能的话,能否贴一下出错位置附近的代码,谢谢

    另外,ADO的问题可以到SQL Server的版问,那里数据库的专家比较多……


    Shuhai Shen - I love programming, travel and photographing. Welcome to my blog: http://leonax.net
    2010年8月20日 13:04
  • 先谢谢SHUHAI的关注

    调试到CONNECTIONPTR->OPEN的时候记得是报 个No provider and no default provider specified。的错。

    后来我又写了个小程序测试,当时用的是http://www.codeproject.com/KB/database/caaadoclass1.aspx上的这个ADO封装装类,也是在OPEN的时候报那个错。(PS前面的程序直接用的ado,没有用这个封装类。)


    现在没在64位机器那,具体也记不详细了。

    顺便我再去SQL版看看

    2010年8月20日 16:47
  • 出差两天,刚回来.

    我仔细看了一下.又写了个小程序试验,代码很简单就是一个_ConnectionPtr m_Conn;

    然后直接调用open时,连接串写成"DSN=test;uid=sa;pwd=123"或是"Driver={SQL SERVER};server=192.168.0.2;Database=MyDB;User id=sa;password=123"都会报错. 代码是800A0EA9,说是Provider is not specified and there is no
    designated default provider, msg = unknown error

     

    只要把连接串换成"Provider=SQLOLEDB;Data Source=192.168.0.2Initial Catalog=db;User ID=username;Password=password;"就没有问题了.

    但我不明白这是为什么?

    2010年8月25日 13:41
  • 你的问题看上去和这篇KB一样:http://support.microsoft.com/kb/971987,原因是在64位的2003(XP)下面有默认的Provider,如果你要用ODBC的话,需要指定Provider为MSDASQL

    把connection string写成Provider=MSDASQL;Server=192.168.0.2;..."试试


    Shuhai Shen - I love programming, travel and photographing. Welcome to my blog: http://leonax.net
    2010年8月25日 17:01
  • 原来如此,甚为感谢!最近一直出短差上网不方便,不好意思.
    2010年8月31日 0:55