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,或許是我的用法有問題,只好先這樣用著了。