描述
如果且仅当准备好的语句X不直接更改数据库文件的内容时,StatementReadonly方法返回true(非零)。
PB语法
METHOD StatementReadOnly () AS LONG |
参数
该方法没有参数。
返回值
对或错。
备注
请注意,应用程序定义的SQL函数或虚拟表可能会以副作用间接更改数据库。例如,如果应用程序定义了调用EXEC的函数“eval()”,则以下SQL语句将通过副作用更改数据库文件:
SELECT eval('DELETE FROM t1')FROM t2;
但是由于SELECT语句不会直接更改数据库文件,所以Statementreadonly仍将返回true。
事务控制语句(如BEGIN,COMMIT,ROLLBACK,SAVEPOINT和RELEASE)导致Statementreadonly返回true,因为语句本身并不实际修改数据库,而是控制其他语句修改数据库的时间。ATTACH和DETACH语句还会导致Statementreadonly返回true,因为这些语句更改了数据库连接的配置,它们不会更改磁盘上数据库文件的内容。