Delphi中的TQuery状态

时间:2017-09-28 07:58:57

标签: delphi

使用TQuery.state in [dsEdit, dsInsert]我可以检查DataSet是否处于某些给定状态。有没有办法检查它是否不在给定状态?

我已尝试TQuery.state <> [dsEdit, dsInsert]导致Incompatible types错误和not Query.State in [dsEdit, dsInsert]但我收到错误Operator not applicable to this operand type

点击这个按钮我正在申请更新,当有人deleteDataSet录制但是没有状态检查这种情况时,我也需要这样做。

1 个答案:

答案 0 :(得分:6)

当然。写这个的方法是

if not (Query1.State in [dsEdit, dsInsert]) then ....

你得到Operator not applicable to this operand type错误的原因是因为Delphi的Object Pascal中的运算符优先级。 Not的优先级高于Query1.State in [...],因此当编译器看到not Query1时,知道Query1不是布尔值,它会引发Operator not applicable ...错误。