QtSQL:模型的clear()上的“预处理语句”qpsqlpstmt_1“不存在”

时间:2012-10-15 01:15:46

标签: qt postgresql

我收到控制台中打印的以下错误消息:

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

2 个答案:

答案 0 :(得分:1)

请参阅这些Qt问题跟踪器条目:

...所有这些都提到了您准备好的陈述名称并与删除有关。

答案 1 :(得分:0)

经过相当长的一段时间后,我意识到在调用clear之前我只是关闭了与数据库的连接...这不是一个好策略。