打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python读取mdb所有表

时效说明:walker 的旧文迁移,某些地方可能过时,最后更新时间为 2015-09-25

以下所有代码 Python2.7、Python3.4 均可用。

win32.com

# encoding: utf-8

# author: walker

# date: 2015-09-25

# summary: 打印指定access文件、指定表的所有字段

import win32com.client

def PrintColumns_win32com(pathfile, tablename):

conn = win32com.client.Dispatch(r'ADODB.Connection')

DSN = 'PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=' + pathfile + ';'

#DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=' + pathfile + ';'

conn.Open(DSN)

rs = win32com.client.Dispatch(r'ADODB.Recordset')

rs.Cursorlocation = 3

sql = 'SELECT TOP 1 * FROM ' + tablename

print(sql)

rs.Open(sql, conn)

for i in range(0, rs.Fields.Count):

print('%s - %d - %d' % (rs.Fields[i].Name, rs.Fields[i].Type, rs.Fields[i].DefinedSize))

conn.Close()

关于字段类型(Type):3为数字,202为文本,203为备忘。Windows 下有更简洁的函数 pypyodbc.win_connect_mdb,只需要填路径。

相关阅读

pyodbc

# encoding: utf-8

# author: walker

# date: 2015-09-25

# summary: 打印指定access文件、指定表的所有字段

import pyodbc

def PrintColumns_pyodbc(pathfile, tablename):

connStr = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=%s;' % pathfile

print('connStr:' + connStr)

conn = pyodbc.connect(connStr)

cur = conn.cursor()

for row in cur.columns(table=tablename):

print(row.column_name)

cur.close()

conn.close()

相关链接

pypyodbc

# encoding: utf-8

# author: walker

# date: 2015-09-25

# summary: 打印指定access文件、指定表的所有字段

import pypyodbc

def PrintColumns_pypyodbc(pathfile, tablename):

connStr = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=%s;' % pathfile

print('connStr:' + connStr)

pypyodbc.lowercase = False #是否将字段名转为小写

conn = pypyodbc.connect(connStr)

cur = conn.cursor()

cur.execute('SELECT TOP 1 * FROM ' + tablename)

cnt = 0

for tup in cur.description:

print(tup[0])

cnt += 1

print('cnt:' + str(cnt))

cur.close()

conn.close()

相关链接

pyodbc 与 pypyodbc 取值的区别

在 select 指定字段时

row[idx]

row.field

row['field']

row.get('field')

pyodbc

×

×

pypyodbc

×

在 select * 时

row[idx]

row.field

row['field']

row.get('field')

pyodbc

×

×

×

pypyodbc

×

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python 访问access数据库的实现
ASP连接access数据库常用的两种方法
ASP远程局域网连接ACCESS的问题
用ASP上传Excel 表格并导入到数据库
PHP实现连接Access数据库
6大对象和数据库操作简单学
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服