dbExpress“记录未由其他用户找到或更改”

mjn*_*mjn 4 delphi dbexpress

使用dbExpress时,如何查找“找不到其他用户发现或更改的记录”错误的原因?

如何查找失败的SQL语句(带有实际参数值)?

mjn*_*mjn 6

  • 确保编译器使用调试DCU。

  • 在程序的第一行中TSQLResolver.DoExecSQL以单位设置断点db\Provider

  • 运行导致错误消息的操作(例如,修改数据感知组件中的记录)

  • 如果调试器停止,则可以查看生成的SQL命令

  • 检查SQL语句中可能导致错误的条件

此时,仅可以检查语句中的常量表达式,例如...'其中Field1为null且Field2 = 0'。在DoExecSQL中,SQL语句使用占位符(?)作为参数值,因此,如果常量表达式条件没有显示任何帮助,请继续进行调试:

  • 若要查看实际的参数值,请在函数TSQLConnection.Execute中设置一个断点(在SqlExpr单元中),并逐步完成参数评估循环。