PostgreSQL执行查询语句报错

Date: 2015-06-12
Summary: 在使用PostgreSQL数据库执行查询语句时出错,在了半天才找到的解决方案,记录一下。

PostgreSQL执行查询语句报错

在使用PostgreSQL数据库执行查询语句时出错,环境是Qt4.8.6,vs2010,PostGIS 2.1.7。错误图片如下:

PostgreSQL执行查询语句报错_第1张图片
错误图片

我一般会这么用(在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,或许是我的用法有问题,只好先这样用着了。

参考

  1. https://forum.qt.io/topic/31404/solved-cannot-create-table-with-postgresql-driver/4
  2. http://bugs.quassel-irc.org/issues/1355

你可能感兴趣的:(PostgreSQL执行查询语句报错)