0

我在控制台中打印出以下错误消息:

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
4

2 回答 2

1

查看这些 Qt 问题跟踪器条目:

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

于 2012-10-15T01:41:33.930 回答
0

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

于 2013-03-26T17:02:35.747 回答