Delphi 在OnUpdateRecord事件中从TFDUpdateSQL读取结果

Delphi 在OnUpdateRecord事件中从TFDUpdateSQL读取结果,delphi,firedac,delphi-10.4-sydney,Delphi,Firedac,Delphi 10.4 Sydney,我已经设置了一个简单的TFDQuery,它绑定到TFDUpdateSQL组件来处理更新。 TFDUpdateSQL Insert sql在表中插入一行,然后调用scope_Indetity以获取最新的标识插入值。我想在OnUpdateRecord事件处理程序中读取此值。我正在尝试使用TFDUpdateSQl.Dataset.Fields[0].Asinteger读取它,但每次都返回0作为值。有人能帮我理解如何在OnUpdateRecord中读取插入结果。您需要使用OnNewRecord进行插入,

我已经设置了一个简单的TFDQuery,它绑定到TFDUpdateSQL组件来处理更新。
TFDUpdateSQL Insert sql在表中插入一行,然后调用scope_Indetity以获取最新的标识插入值。我想在OnUpdateRecord事件处理程序中读取此值。我正在尝试使用TFDUpdateSQl.Dataset.Fields[0].Asinteger读取它,但每次都返回0作为值。有人能帮我理解如何在OnUpdateRecord中读取插入结果。

您需要使用
OnNewRecord
进行插入,
OnUpdateRecord
进行编辑/更新。 这取决于您如何使用DB以及如何创建/添加标识。
也许您需要使用
AfterPost

欢迎使用StackOverflow!你在使用什么数据库?您能编辑您的问题并添加一个我们可以测试的最小完整且可验证的示例()吗?我们这里不使用签名。您的身份信息显示在您发布的每个问题或答案的右下角。也不必使用HTML来结束行-只需按一下Enter键就可以了。Enter不起作用。如果您给两次输入,将有额外的行-(如果你使用html,它可以工作。Enter可以很好地工作,并且已经工作了十多年。它似乎对除你以外的所有人都有效。:-)html有时会破坏格式,并且大多数html在代码块之外是不被接受的。你可以看到,你的帖子中不需要HTML,因为我在编辑时删除了它——网站的wordwrap完成了所有工作。如果您需要一个新段落,输入一个即可。两次输入会在段落之间留下一个空白行,这和我做的不一样。它的一行文字-(在你改变它之后。