【发布时间】:2009-11-30 12:22:33
【问题描述】:
我正在处理一个遗留项目,在升级到 Delphi 2007 之前大部分是在 Delphi 5 中编写的。这次升级之后发生了很多变化,除了下面的数据库。它仍然使用 MS-Access 进行数据存储。
现在我们希望支持 SQL Server 作为备用数据库。尽管多用户支持将成为未来的一项功能,但仍仅适用于单用户情况。虽然在需要使用不同的数据库时不会出现很多迁移问题(见下文),但保持两个数据库结构同步是一个问题。
如果我要创建一个 SQL 脚本来生成 SQL Server 数据库,那么我需要第二个脚本来保持 Access 数据库是最新的。他们说的不是同一种方言。 (至少,不是为了我们的目的。)所以我需要一种方法来以简单的方式维护数据库结构,确保它可以生成有效的 SQL Server 数据库作为 Access 数据库。我可以编写自己的工具,将数据库结构存储在 XML 文件中,结合一些智能代码,ADOX 将生成这两种数据库类型。
但不是已经有一个很好的工具可以做到这一点吗?
注意:应用程序也使用 ADO,所有查询都只是简单的选择语句。虽然它有 50 多个表,但有一个根“文档”表,用户选择此表中的“文档”之一。然后它从与该文档记录相关的所有表中收集所有记录,并将它们存储在内存结构中。当用户保存数据时,它只是将文档记录和所有更改的数据再次写回数据库。基本上,文档的这种读/写机制是整个应用程序中唯一的数据库交互。所以使用不同的数据库不是什么大问题。
我们将来会放弃 MS-Access 数据库,但目前我们有 4000 名客户在使用此应用程序。我们首先需要确保整个事情与 SQL Server 一起工作,我们需要继续维护当前代码。因此,我们将不得不支持这两个数据库至少一年。
【问题讨论】:
标签: sql sql-server ms-access