2010-07-15 98 views
5

这是我已经试过:如何pyodbc连接到Access(.mdb)中的数据库文件

- 查找Vista的ODBC数据源管理*通过搜索,

- 添加新文件数据源* ,选择驱动程序的Microsoft Access(* .mdb)中,并选择所关心我的mdb文件,从蟒蛇壳

-import pyodbc并尝试:

pyodbc.connect("DSN=<that Data Source I just created>") 

我收到以下错误消息(Portugue SE **):

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Nome da fonte de dados n\xe3o encontrado e nenhum driver padr\xe3o especificado (0) (SQLDriverConnectW)') 

意为“未找到数据源名称和指定没有标准的驱动器”。

我在做什么错? 如何解决问题? 另外,我在网上搜索文档,但发现没有什么价值,任何人都可以推荐任何文档?

*名称可能不完全准确,因为我的Windows是葡萄牙语。

**号,葡萄牙人没有“3”和“\”字母,这些印刷错误的特殊字符

回答

1

我用odbc模块(包括在ActiveState的Python的),但测试pyodbc和我的作品:

#db = odbc.odbc('northwind') 
#db = odbc.odbc('Driver={Microsoft Access Driver (*.mdb)};Dbq=Nwind.mdb;Uid=;Pwd=;') 
#db = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=Nwind.mdb;Uid=;Pwd=;') 
db = pyodbc.connect('DSN=northwind') 

当然评论连接也可以。

我配置nothwind为用户DSN,所以你可能要配置ODBC数据库连接的用户DSN或系统DSN,或不配置在ODBC管理器,您可以使用ConnectString中,你可以在你的.mdb文件指向。

2

我有一个pyodbc类似的问题,虽然不是与Access,但一个不同的ODBC驱动程序。

这对我有帮助。 http://robertoschiabel.wordpress.com/2008/02/28/windows-x64-32bit-odbc-vs-64bit-odbc/ (这里是在情况合适的知识库文章这个网址就会消失。http://support.microsoft.com/kb/942976/en-us

我们以前的服务器硬件死了,我们不得不在64位操作系统上快速部署,因为这是所有我们认为是可用的。使用普通的ODBC管理工具,我添加了适当命名的DSN,但它仍然声称找不到它。只有在运行ODBC管理员的特殊32位版本时,才能够定义我的脚本使用pyodbc可以找到的DSN。

1

用pyodbc列出你的odbc连接是明智的,看看你在用什么。确保您使用适当的pyodbc 32位Python 32位驱动程序。如果你想使用64位访问文件,你应该使用提供驱动程序的64位MS Acceess。

sources = pyodbc.dataSources() 
keys = sources.keys() 
for key in keys: 
    print key 
相关问题