python 读 access 数据库

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航