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