我是 10 年的 FirebirdSQL 用户,现在我有一个客户想要使用 MSSQL 2008。我不想用这个来引发激烈的战争,我只是想要你对数据访问技术的建议。
我正在使用德尔福 MMVI。
使用原生 ADO 还是 DBExpress?使用第三部分?
还有什么智慧之言?
谢谢,
是的,我知道我将不得不重写程序、触发器。我希望这值得...
我是 10 年的 FirebirdSQL 用户,现在我有一个客户想要使用 MSSQL 2008。我不想用这个来引发激烈的战争,我只是想要你对数据访问技术的建议。
我正在使用德尔福 MMVI。
使用原生 ADO 还是 DBExpress?使用第三部分?
还有什么智慧之言?
谢谢,
是的,我知道我将不得不重写程序、触发器。我希望这值得...
虽然我每天都使用 SQLDirect 组件,但 AnyDAC 似乎是流行且开发良好的解决方案:http ://www.da-soft.com/anydac/
我使用优势数据库服务器编写了一个程序,并通过使用 ado 组件非常轻松地将其切换到 MSSQL。您可以使用 udl 文件来指定 odbc 连接,以便相对轻松地在两种不同的数据库类型之间切换。只要您使用简单的数据库连接,例如简单的 sql 语句或表,切换就不会有太多问题。如果您经常使用程序和触发器,这可能会更加困难。但是,我没有 dbexpress 的经验,所以不确定它的比较。
我会推荐 DBExpress。
我们在 DBExpress for SQL 和DOA for oracle 方面拥有非常好的经验。如果您正在使用 oracle,那么 DOA 就是您要走的路(比 BDE 和 ADO 快得多)。
您需要确保的是,无论您使用哪种解决方案,它都具有您想要的数据库以及您将来可能需要支持的数据库的驱动程序。
直到最近我们还在使用ODBCExpress,它很好地将 ODBC 封装到 Delphi TDataSet 组件中,当然每个数据库都有一个 ODBC 驱动程序。不幸的是,Delphi 2009 的 Unicode 不再支持该产品,因此它适用于 Delphi 2006,但如果您在某个时候迁移到更高版本的 Delphi,则不会。话虽如此,我正试图在其原始开发人员的帮助下将其升级到 D2009。
因此,ADO 将是一个显而易见的选择,因为大多数数据库也有一个 ADO 驱动程序,并且它现在通过 dbGo 组件成为 Delphi 的一部分。但是看起来 dbExpress 很受欢迎并且很受欢迎,只要有驱动程序可以完全支持您选择的数据库,这似乎是最受欢迎的选择。
对我来说,ADO 是 MS SQL 的最佳选择。它是由微软开发的,非常稳定。您可以花时间采用更本机的方法,但我发现我使用 ADO 构建的项目不需要很多(如果有的话)更改即可支持各种版本的 MSSQL Server。ADO 还支持 ODBC 驱动程序,因此也可以访问旧数据库。甚至可以获取一个逗号分隔的文件并像使用 ADO 的表一样查询它(尽管性能很糟糕,因为每个查询都变成了全表扫描)。