Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
等效于Delphi 2010 dbExpress中的TUpdateSQL?_Delphi_Delphi 2010_Dbexpress_Bde - Fatal编程技术网

等效于Delphi 2010 dbExpress中的TUpdateSQL?

等效于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

我计划将Delphi 6 BDE应用程序迁移到Delphi 2010

  • 首先,我必须离开BDE吗?(我会的,但如果可能,我更愿意分阶段进行)

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

  • 最后,dbExpress中是否有TUpdateSQL的等价物?(或其他任何东西)

我有很多代码在网格中更新只读查询(使用TUpdateSQL和ApplyUpdate)

请帮忙~~~

非常感谢。

1)您肯定必须从BDE迁移到。溴化二苯醚是一种技术

你可以阅读这些文章

2)DbExpress是比BDE更好的与sql server通信的选择,但是我更喜欢ADO,因为它是sql server的本机

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

您还可以检查(是一个组件库,支持将旧BDE应用程序无缝迁移到dbExpress技术)


再见。

使用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中有相同的新旧值的基础

这是C++,我不知道DEHPLI,但基本上是一样的,我认为

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;