使用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
。
点击这个按钮我正在申请更新,当有人delete
从DataSet
录制但是没有状态检查这种情况时,我也需要这样做。
答案 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 ...
错误。