Python 獲取 Access 表欄位名!

2021-09-25 09:08:41 字數 2184 閱讀 8052

時效說明:walker 的舊文遷移,某些地方可能過時,最後更新時間為 2015-09-25

以下所有** python2.7、python3.4 均可用。

【win32.com】

python資源共享群:484031800

# 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,只需要填路徑。

python操作access資料庫基本操作步驟分析

ado獲取表的所有欄位名

【pyodbc】

# encoding: utf-8

# author: walker

# date: 2015-09-25

# summary: 列印指定access檔案、指定表的所有字段

import pyodbc

def printcolumns_pyodbc(pathfile, tablename):

connstr = r'driver=;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=;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()

【相關鏈結】

獲取ACCESS表結構

經常有朋友問怎麼得到access的表結構。public sub gettables dim rs as new adodb.recordset dim conn as adodb.connection dim ssql as string set conn currentproject.connec...

獲取Access系統表

access 系統表 msysobjects 包含了資料庫物件列表,儘管未在文件中記載,你仍可通過查詢它來獲取你想要的.注 請不要有意或無意地修改任何access系統表,否則會出現不可意料的情況.使用下列 sql 語句來獲取你想要的 查詢 select msysobjects.name from m...

Python獲取access表欄位名

以下所有 python2.7 python3.4均可用。一 win32.com author walker date 2015 09 25 summary 列印指定access檔案 指定表的所有字段 import win32com.client def printcolumns win32com p...