Date: 2015-06-12
Summary: 在使用PostgreSQL数据库执行查询语句时出错,在了半天才找到的解决方案,记录一下。
PostgreSQL执行查询语句报错
在使用PostgreSQL数据库执行查询语句时出错,环境是Qt4.8.6,vs2010,PostGIS 2.1.7。错误图片如下:
我一般会这么用(在sqlite数据库中使用是没有问题的):
QSqlQuery query(db);
QString strSql("select id,name,flydate,ST_AStext(territory),httpserver from public.uav_flightarea");
query.prepare(strSql);
bool success = query.exec();
但是在PostgreSQL数据库时会出现刚才的SQL错误。找了半天,发现这个问题遇到的人也不少,解决办法倒是不多。最后找到了参考1受到了启发,把用法改成下面的形式就没错了:
QSqlQuery query(db);
QString strSql("select id,name,flydate,ST_AStext(territory),httpserver from public.uav_flightarea");
bool success = query.exec(strSql);
参考2把此问题作为一个bug报了出来,至今也没见有什么响应。或许是Qt的一个bug,或许是我的用法有问题,只好先这样用着了。