我是一个10年的FirebirdSQL用户,现在我有一个客户想要使用MSSQL 2008。 我不想用这个开始火焰战争,我只想要你对数据访问技术的建议。
我正在使用Delphi MMVI。
使用原生ADO或DBExpress? 使用第三部分?
任何其他智慧的话语?
谢谢,
是的,我知道我必须重写程序,触发器。我希望这值得......答案 0 :(得分:7)
虽然我每天都使用SQLDirect组件,但AnyDAC似乎是受欢迎且开发良好的解决方案:http://www.da-soft.com/anydac/
答案 1 :(得分:7)
对于数据库组件,我从未见过比来自DevArt(CoreLab)的组件更快更稳定的组件
他们拥有UniDac通用直接访问组件,支持(Oracle,SQL Server,MySql,InterBase / Firebird,PostgreSql和ODBC(提供DB2,Sybase MS Access和任何其他ODBC)
答案 2 :(得分:3)
我使用优势数据库服务器编写了一个程序,并使用ado组件非常容易地将其切换到MSSQL。您可以使用udl文件指定odbc连接,以便相对容易地在两种不同的数据库类型之间切换。只要您使用简单的数据库连接,例如简单的sql语句或表你不应该有太多问题切换。如果您经常使用程序和触发器,可能会更困难。 但是,我没有dbexpress的经验,所以不确定它是如何比较的。
答案 3 :(得分:1)
我会推荐DBExpress。
答案 4 :(得分:1)
我们使用DBExpress for SQL和DOA获得了非常好的oracle体验。如果您正在使用oracle,那么DOA就是最佳选择(比BDE和ADO更快)。
答案 5 :(得分:1)
您需要确保的是,无论您使用哪种解决方案,它都有您想要的数据库的驱动程序以及您将来可能需要支持的数据库。
直到最近我们才使用ODBCExpress,它在将ODBC包装到Delphi TDataSet组件方面做得非常好,当然每个数据库都有一个ODBC驱动程序。不幸的是,Delphi 2009的Unicode不再支持这个产品,因此对Delphi 2006来说没问题,但是如果你在某些时候转移到更高版本的Delphi则不行。说过我试图让它在原来的开发者的帮助下升到D2009。
因此,ADO将是一个显而易见的选择,因为大多数数据库也有一个ADO驱动程序,它现在通过dbGo组件成为Delphi的一部分。但似乎dbExpress很受欢迎并且很受欢迎,只要有完全支持您选择的数据库的驱动程序,这似乎是最受欢迎的选择。答案 6 :(得分:1)
对我来说,ADO是MS SQL的最佳选择。它是由微软开发的,非常稳定。你可以花时间去更原生的方法,但我发现用ADO构建的项目不需要很多(如果有的话)更改来支持各种版本的MSSQL Server。 ADO还支持ODBC驱动程序,因此也可以访问旧数据库。甚至可以使用逗号分隔文件并查询它,就像它是使用ADO的表一样(虽然性能很糟糕,因为每个查询都变成了全表扫描)。