-
- PythonでAccessデータベース(*.mdb)にテーブルを追加する
- 2010-04-16
テーブルの追加は、ADOXを使ってできますが、ADOからSQLを発行した方が楽なので、そちらで。テーブルの存在確認をしたかったので、これは ADOXで行っています。
#!c:/Python25/python.exe -u # encoding: cp932 import win32com.client MDB_NAME = r"test.mdb" PASSWORD = "pass" TABLE_NAME = u"テーブル" #接続文字列を作成します。パスワードが必要ない場合は、後の方で。 ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;\ Jet OLEDB:Database Password=%s;" % (MDB_NAME,PASSWORD) #ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;" % (MDB_NAME) #ADOとADOXに接続します。 con = win32com.client.Dispatch("ADODB.Connection") con.Open(ConnectionString) cat = win32com.client.Dispatch("ADOX.Catalog") cat.ActiveConnection = con #テーブルの存在を確認します。 TableExists = False for x in cat.Tables: if x.Name == TABLE_NAME: TableExists = True print "同じ名前のテーブルがありました" #同じ名前のテーブルがなければ、、 if not TableExists: SQL = u"""CREATE TABLE %s ( ID int Not Null CONSTRAINT PrimaryKey PRIMARY KEY, 氏名 varchar(50), フリガナ varchar(50), 住所 varchar(50), 電話番号 varchar(20) );""" % (TABLE_NAME) con.Execute(SQL) con.Close()データベースを作成して、そのままテーブルの作成に入る場合は、接続の所を次のようにできます。テーブルの存在確認の省略は省略。。。
cat = win32com.client.Dispatch("ADOX.Catalog") cat.Create(ConnectionString) con = cat.ActiveConnectionPythonとMDBの組み合わせって、結構便利なのではないだろうかと思ったりしてます。Access持っていれば、データの確認や帳票印 刷とか簡単にできますし。データベースサイズがほどほどで、同時アクセスもあんまりなさそうであれば、十分いけそう。
from:http://d.hatena.ne.jp/Fio/20081120/p1
-
Views(9130) | Comments(0) |
In:
Python相关
|
(04/16)
PythonでAccessデータベース(*.mdb)を作成する
PythonでMDBのデータをSQLiteに移動してみる
(04/16)
