等效于Delphi 2010 dbExpress中的TUpdateSQL?
我计划将Delphi 6 BDE应用程序迁移到Delphi 2010等效于Delphi 2010 dbExpress中的TUpdateSQL?,delphi,delphi-2010,dbexpress,bde,Delphi,Delphi 2010,Dbexpress,Bde,我计划将Delphi 6 BDE应用程序迁移到Delphi 2010 首先,我必须离开BDE吗?(我会的,但如果可能,我更愿意分阶段进行) 第二,dbExpress是最佳选择吗?(我正在使用MS SQL) 最后,dbExpress中是否有TUpdateSQL的等价物?(或其他任何东西) 我有很多代码在网格中更新只读查询(使用TUpdateSQL和ApplyUpdate) 请帮忙~~~ 非常感谢。1)您肯定必须从BDE迁移到。溴化二苯醚是一种技术 你可以阅读这些文章 2)DbExpre
- 首先,我必须离开BDE吗?(我会的,但如果可能,我更愿意分阶段进行)
- 第二,dbExpress是最佳选择吗?(我正在使用MS SQL)
- 最后,dbExpress中是否有TUpdateSQL的等价物?(或其他任何东西)
再见。使用dbExpress的SQLQuery组件,可以编写“查询”,如
update <table>
set value = :v1
where something = :v2
更新
设置值=:v1
其中something=:v2
然后调用“execsql”方法来物理更新表。使用ClientDataSet和提供程序,您可以将TDatasetProvider与通用OnUpdateRecord(?,现在不记得确切名称)处理程序一起使用,并使其使用 在TUpdateSQL上使用的SQL
这只是一个想法,如果您不能使用第三方组件….在TDataSetProvider上有一个名为BeforeUpdateRecord的事件,它基本上是一种更手动的执行TUpdateSQL的方法 您必须自己创建SQL,然后更新它。(通过TADOQuery等…) 然而,它在TUpdateSQL中有相同的新旧值的基础
DeltaDS->FieldByName("id")->NewValue;
及
你还必须设置
Applied = true;
这样它就不会在您手动完成更新后再尝试进行更新
这里有几个链接应该会有所帮助
如果您需要更多信息,只需添加一条评论,我会回复您他询问的是TUpdateSQL组件,该组件允许将BDE组件(TTable,TQuery)生成的SQL替换为开发人员编写的SQL。它主要用于允许使用联接对查询进行更新。当我说“更新”时,读作:insert、delete和update命令。不能使用联接进行插入/删除/更新。只有“select”语句可以有连接。我们说的是BDE组件,是的,它们可以-如果您创建要在查询对象上插入、更新和删除的SQL,并将其放在TUpdateSQL上。当bde组件收到Post命令时,它使用TUpdateSQL组件上的SQL将数据写入数据库
Applied = true;