科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件python 读 access 数据库

python 读 access 数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

python 读 Access mdb 文件

作者:wide288 来源:CSDN 2008年5月20日

关键字: 数据库 Access python 软件

  • 评论
  • 分享微博
  • 分享邮件
python 读 Access mdb 文件

---------------------------------
import win32com.client
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=e:/db1.mdb;'
conn.Open(DSN)
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs_name = 'co' 
rs.Open('[' + rs_name + ']', conn, 1,2)  #此函数中参数1,2 是什么值怎么设,我还不知道,还在试。
flds_dict = {}
for x in range(rs.Fields.Count):
    flds_dict[x] = rs.Fields.Item(x).Name
x = rs.Fields.Item(1).Value
print x
#conn.Close()
--------------------------------------------
以上代码完全正确,但是为什么还为出现以下的错误呢?
原因我查到了,是因为数据库的表里的值是中文,所以出现以下错误,改成英文即成功。
想请问大家怎么能使用,中文内容,或中文表名。谢谢。

Traceback (most recent call last):
  File "D:\PYTHON23\lib\site-packages\Pythonwin\pywin\framework\scriptutils.py", line 310, in RunScript
    exec codeObject in __main__.__dict__
  File "D:\Python23\src\Script1.py", line 12, in ?
    print x
  File "D:\PYTHON23\lib\site-packages\Pythonwin\pywin\framework\winout.py", line 172, in write
    return self.template.write(msg)
  File "D:\PYTHON23\lib\site-packages\Pythonwin\pywin\framework\winout.py", line 487, in write
    self.HandleOutput(message)
  File "D:\PYTHON23\lib\site-packages\Pythonwin\pywin\framework\winout.py", line 468, in HandleOutput
    self.QueueFlush()
  File "D:\PYTHON23\lib\site-packages\Pythonwin\pywin\framework\winout.py", line 444, in QueueFlush
    item = str(item)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
>>>
这是一篇没有结果的文章,我也正在努力找这个结果,其中的代码几乎都是从CSDN 和国外网站上找的,还有很多不明白之处,python.cn 上邮件列表中的网友给了我很多的帮助。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章