Qt4.8.5连接PostgreSQL 12的问题
使用Q3SqlCursor查询不到表报错提示Q3SqlCursor::setName: unable to build record, does 'voicefile' exist?
什么原因
引用 皆我百晓生 小程序回复内容作答:
这个问题可能是由于Qt4.8.5版本的Qt SQL模块不支持连接到PostgreSQL 12数据库引起的。在Qt4.8.5中,Qt SQL模块使用的是Q3SqlCursor类来执行查询操作,而该类在较新的PostgreSQL版本中可能无法正常工作。
解决这个问题的方法是升级到Qt的较新版本,如Qt5,因为Qt5的Qt SQL模块已经对PostgreSQL 12进行了适配。另外,你也可以尝试使用Qt提供的其他数据库驱动程序,如QPSQL驱动程序,来连接到PostgreSQL 12数据库。
如果你必须继续使用Qt4.8.5,并且无法升级到较新的Qt版本,那么可能需要考虑修改代码以适应新的PostgreSQL版本。你可以尝试使用QSqlQuery类来执行查询操作,而不是使用Q3SqlCursor类。另外,确保你的数据库表名和字段名正确,并且数据库中确实存在名为'voicefile'的表。
总之,建议升级到较新的Qt版本或者使用适配PostgreSQL 12的数据库驱动程序来解决这个问题。