相当于Delphi 2010 dbExpress中的TUpdateSQL?

时间:2009-10-28 03:32:42

标签: delphi delphi-2010 dbexpress bde

我打算将Delphi 6 BDE应用程序迁移到Delphi 2010 ......

  • 首先,我是否必须离开BDE? (我会,但如果可能,我希望分阶段这样做)

  • 第二,是dbExpress的最佳选择吗? (我正在使用MS SQL)

  • 最后,dbExpress中是否存在等效的TUpdateSQL? (或其他任何东西)

我有很多代码在网格内更新readonly查询(使用TUpdateSQL和ApplyUpdate)。

请帮助~~~

非常感谢。

4 个答案:

答案 0 :(得分:3)

1)您必须从BDE迁移到DbExpress。 BDE是obsolete and deprecated技术。

您可以阅读这些文章

2) DbExpress是一个比BDE更好的替代方案,可以与sql server进行通信,但我更喜欢ADO,因为它是SQL Server的本机。

3) dbExpress没有类似于TUpdateSQL的组件,但Luxene有一个TDBXUpdateSQL,它是 dbExpress eXtension 组件的一部分。

您还可以InstantBDExpress

检查ETHEA是一个能够将旧BDE应用程序无缝迁移到dbExpress技术的组件库)

再见。

答案 1 :(得分:1)

在TDataSetProvider上有一个名为BeforeUpdateRecord的事件,它基本上是一种更简单的TUpdateSQL方式

你必须自己创建SQL然后更新它。(通过TADOQuery等...)

如何在TUpdateSQL

中具有相同的旧值和新值基础

sry这是c ++我不知道dehpli但它基本上和我想的一样

DeltaDS->FieldByName("id")->NewValue;

DeltaDS->FieldByName("id")->OldValue;

你也必须设置

Applied = true;

以便在手动完成后不尝试进行更新

这里有一些应该有用的链接 About BeforeUpdateRecord

如果您需要更多信息,只需添加评论并生病回复

答案 2 :(得分:0)

使用dbExpress的SQLQuery组件,可以编写“查询”,例如

update <table>
set value = :v1
where something = :v2

然后调用'execsql'方法来物理更新表。

答案 3 :(得分:0)

使用ClientDatasets和提供程序,您可以使用带有通用OnUpdateRecord(?,不记得现在的确切名称)处理程序的TDatasetProvider并使其使用 您在TUpdateSQL上使用的sqls。

只是一个想法,如果你不能使用第三方组件......