3

PyODBCを使用してMicrosoftAccessmdbファイルからいくつかのデータを選択するPythonプログラムを作成しています。

いくつかの異なるテーブルの列名を見つける必要があります。SQL Serverでは、これは次のようなクエリを使用して実行できます。

SELECT c.name FROM sys.columns c, sys.tables t
WHERE c.object_id = t.object_id
AND t.name = tableName

ただし、そのクエリはAccessでは機能しません。と

SELECT MSysObjects.Name FROM MSysObjects
WHERE (((MSysObjects.Flags)=0) AND ((MSysObjects.Type)=1))
ORDER BY MSysObjects.Name

リンクされていないテーブル名のリストを取得できますが、MSysObjectに列名のリストが含まれていないようです。

SQLを使用してAccessデータベースのテーブルの列名を取得する方法はありますか?

4

3 に答える 3

8

これを実現するためのSQLクエリが見つかりませんでした。ただし、PyODBには列のリストを返すことができるカーソルメソッドがあることを発見しました

# columns in table x
for row in cursor.columns(table='x'):
    print row.column_name
于 2010-11-19T21:21:31.047 に答える
1

Python 3

conlumn名でアクセスするには

table_row = conn.execute(query)
for row in table_rows:
     print (row.nameColumn)

conlumnインデックスでアクセスするには

table_row = conn.execute(query)
for row in table_rows:
     print (row[0])
于 2019-03-06T11:44:06.033 に答える
0

そのバージョンのMS-Accessを照会する際の制限についてはわかりませんが、他の同様の状況で使用される解決策は、SELECT*FROMテーブルLIMIT=0(または1によって異なります)です。その後、結果から返された列名を収集できます。

于 2010-11-19T17:51:40.590 に答える