我收到控制台中打印的以下错误消息:
Unable to free statement: ERROR: prepared statement "qpsqlpstmt_1" does not exist
在应用程序中调用以下函数时(或删除对象时(如果在删除前未调用clear()
),则会打印它:
sqlQueryModel->clear();
sqlQueryModel对象的类型为QSqlQueryModel
,在整个派生类中用于与PostgreSQL数据库通信。它还可以作为QCompleter
的模型。我从未声明或使用名称"qpsqlpstmt_1"
。
有人可以帮我解释一下错误信息,并解释可能导致错误的原因吗?这是否表明我的代码或Qt错误存在问题? (可能是前者:))
在查看服务器上的PostgreSQL日志文件时,会出现完全相同的语句以及另外一行:
STATEMENT: DEALLOCATE pqsqlpstmt_1
答案 0 :(得分:1)
请参阅这些Qt问题跟踪器条目:
...所有这些都提到了您准备好的陈述名称并与删除有关。
答案 1 :(得分:0)
经过相当长的一段时间后,我意识到在调用clear之前我只是关闭了与数据库的连接...这不是一个好策略。