尝试更新表时SQLite失败

时间:2014-10-06 22:54:14

标签: sql qt sqlite

我完全不满意更新QSLite表。 这是我的代码:

QSqlQuery tSqlQuery("SELECT load_extension(\'libspatialite-4.dll\')", *sdb);
QSqlQuery addColumnLat;
addColumnLat.prepare("ALTER TABLE roads_nodes ADD COLUMN lat REAL");
QSqlQuery addColumnLon;
addColumnLon.prepare("ALTER TABLE roads_nodes ADD COLUMN lon REAL");
QSqlQuery updateLatLon;
updateLatLon.prepare("UPDATE roads_nodes SET lat=ST_Y(roads_nodes.geometry), lon=ST_X(roads_nodes.geometry)");
    if(addColumnLat.exec())
      if(addColumnLon.exec())
        if(!updateLatLon.exec())
        {
            qDebug() << updateLatLon.lastQuery();
            qDebug() << updateLatLon.lastError().databaseText();
            qDebug() << updateLatLon.lastError().driverText();
        }
    else
       qDebug() << addColumnLat.lastError().text();

这是输出:

"UPDATE roads_nodes SET lat=ST_Y(roads_nodes.geometry), lon=ST_X(roads_nodes.geometry)"
"No query" 
"Unable to fetch row"

扩展正确加载,实际上我可以用ST_X(geometry_column)和ST_Y(geometry_column)执行SELECT语句

前两个ALTER语句正确执行,并创建新列。

WIDW?

0 个答案:

没有答案