Delphi:在没有 Ms Access 的情况下创建 Access DB (.mdb)
Posted
技术标签:
【中文标题】Delphi:在没有 Ms Access 的情况下创建 Access DB (.mdb)【英文标题】:Delphi: Creating Access DB (.mdb) without Ms Access 【发布时间】:2010-10-25 13:43:29 【问题描述】:有没有办法在不实际使用 Ms Access 的情况下创建 Access 数据库 (.mdb)?我希望我的应用程序改为创建它(当用户按下工具栏上的“新文档”时)。
我正在使用 Delphi 5 Ent。
提前致谢! :-)
【问题讨论】:
【参考方案1】:是的,如果您使用 ADOX 库,有一种方法。它是一个可以在 Delphi 中导入的 ActiveX 库。然后您可以使用以下代码创建一个新数据库。见here。
procedure TForm1.btnNewDatabaseClick(Sender: TObject);
var
DataSource : string;
dbName : string;
begin
dbName:='c:\aboutdelphi.mdb';
DataSource :=
'Provider=Microsoft.Jet.OLEDB.4.0' +
';Data Source=' + dbName +
';Jet OLEDB:Engine Type=4';
ADOXCatalog1.Create1(DataSource);
end;
【讨论】:
很高兴为您服务。如果您认为我的回答是您问题的正确答案,您可以将我的回答标记为已接受。这就是 *** 的工作原理。提前谢谢你。【参考方案2】:它是这样完成的:
procedure CreateNewDatabase;
var
AdoxCatalog: Catalog;
begin
AdoxCatalog := CoCatalog.Create;
AdoxCatalog.Create(ConnectionString
+ 'Jet OLEDB:Engine Type='+IntToStr(Jet4x)+';');
end;
您将需要 ADOX_TLB,您可以通过导入类型库“Microsoft ADO Ext. 2.8 for DDL and Security”来获得它。
【讨论】:
感谢您的回答。我打算让我的应用程序成为共享软件。使用 ADOX 会如何影响部署?我还需要包含 ActiveX 库还是只包含 app.exe? 据我所知,ADOX 已经安装在 XP 及更高版本上,就像 ADO 一样。 Wikipedia 表示 MDAC 2.5 包含 ADOX,并从 Windows 2000 开始包含在 Windows 中。 我明白了。现在我知道。谢谢! :) 请注意,jet 驱动程序不支持 64 位应用程序,因此您只能使用 32 位应用程序。 现在对 Access 文件提供 64 位支持。我并不完全清楚 ACE 如何处理 MDB(关于 A2007/A2010 工作方式的一些事情表明 Access 将 Jet 4 用于 MDB,将 ACE 用于 ACCDB,但其他事情表明 ACE 可以同时处理两者),但是如果您需要编译对于 64 位,您应该尝试下载 64 位 ACE,它已在 MS 的网站上提供了很长一段时间。以上是关于Delphi:在没有 Ms Access 的情况下创建 Access DB (.mdb)的主要内容,如果未能解决你的问题,请参考以下文章
MS Access Form:在没有键的情况下将新信息输入到两个链接表中
使用 Delphi 将文本文件加载到 MS ACCESS TABLE
在 Delphi 中的不同数据库中的 MS Access 连接表