我正在研究必须支持(当前)MS Access和SQL Server后端的桌面应用程序。该应用程序正在恒定开发中,并且经常对数据库进行更改,主要是添加表和视图以支持新功能(以及一些滴滴和更改表以添加新列)。

我有一个将DDL编译到可执行文件中的系统,检查数据库以查看可执行文件是否具有必须执行的任何新DDL并执行。这对于单个数据库正常工作。

我的直接问题是,SQL Server和Access支持数据类型的截然不同的名称,因此,对访问执行的创建表语句将不会针对SQL Server执行(或更糟糕的是,将执行,而是使用不同的数据类型创建表)。

是否可以使用一种方法来创建DDL(尤其是创建表命令),可以通过ADO对两个数据库进行执行,而无需为每个提供商制作单独的DDL?

有帮助吗?

解决方案

由于您已经在使用ADO,因此您应该研究 Microsoft Adox

这使您可以使用独立于基础数据源类型的ADO对象模型在数据源中操纵结构。即不诉诸于明确的DDL

任何给定的ADO提供商都不能保证对ADOX的支持,即使可用的是ADOX支持的水平也可能有所不同。但是对于MS Access和MS SQL Server,我认为您会找到所需的所有功能(可能还有更多!)

其他提示

这可以使用Delphi中的DBX完成。

以下是指向示例代码的链接,显示如何完成。http://cc.embarcadero.com/item/26210

我有同样的问题。我在执行它之前解决了将其应用于SQL的C Preproccessor。预处理器包括宏,以处理不同的DBS。

Stefano

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top