CSDN博客

img wide288

python 读 access 数据库

发表于2004/1/20 21:15:00  1720人阅读

分类: 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 上邮件列表中的网友给了我很多的帮助。

                  wide288
                                     2004-1-18

0 0

相关博文

我的热门文章

img
取 消
img