2010-06-22 77 views
4

我想用Python在Windows中创建一个mdb数据库文件,但似乎无法用Python文档弄清楚。我读到的所有内容都与建立连接以及如何处理光标有关。如何在Python中创建一个mdb数据库文件?

有什么想法?谢谢...

+0

通过MDB数据库,你的意思是一个Microsoft Access数据库? – mikej 2010-06-22 15:24:10

+0

是的,一个Access数据库 – GuidoS 2010-06-22 20:27:48

+0

用一个例子更新了我的答案。 – JAB 2010-06-23 15:38:41

回答

10

我对comtypes模块的使用经验相当不错。您可能希望为所使用的方法提供Access DAO/ADO/VBA引用,但由于comtypes模块动态生成COM库包装,因此没有内置文档。

下面是它如何工作的简要示例。 (来吧,测试一下自己。)

from comtypes.client import CreateObject 

access = CreateObject('Access.Application') 

from comtypes.gen import Access 

DBEngine = access.DBEngine 
db = DBEngine.CreateDatabase('test.mdb', Access.DB_LANG_GENERAL) 
     # For me, test.mdb was created in my My Documents folder when I ran the script 

db.BeginTrans() 

db.Execute("CREATE TABLE test (ID Text, numapples Integer)") 
db.Execute("INSERT INTO test VALUES ('ABC', 3)") 

db.CommitTrans() 
db.Close() 

(移动第二import语句的CreateObject线,其中用于类型库的Python包装模块以前不存在的情况后。)

+0

如果你可以创建一个DBEngine变量,那么你也可以使用所有的DAO表,字段,索引和关系对象。这些给你更多的创建对象的详细控制。请参阅我网站上的TempTables.MDB页面,其中说明了如何在您的应用程序中使用临时MDB。 http://www.granite.ab.ca/access/temptables.htm – 2010-06-24 03:25:50

+0

对不起,这是如此的新,但我安装了comtypes并试图运行代码,但后来我得到了以下异常:“ImportError:can not导入名称访问“。有任何想法吗? – GuidoS 2010-06-24 13:19:10

+0

@Tony Toews:是的,呃,这可能是因为我没有真正将数据插入到我以这种方式创建的表中,但是当我创建一个表并使用DAO添加一个字段时,它没有显示之后我在Access中打开数据库时会遇到问题,因为这只是作为使用'comtypes'创建MDB文件的一个例子,所以我不想花费更多时间来解决它。 – JAB 2010-06-24 14:38:03

相关问题