QSqlTableModel:列名中的空格不好?

时间:2015-11-03 15:02:20

标签: sql-server qt qsqltablemodel

我使用Microsoft ODBC驱动程序连接到MS SQL表(来自Linux)。请注意,如果" MyTable"指向列中没有空格的表,一切都很好。对于另一张桌子(我需要阅读的那张桌子),当它到达带有空格的第一列时,它们会变成梨形。我从lastError()。text()中得到的错误类似于:

 ERROR: [Microsoft][ODBC Driver 11 for SQL Server][SQL  "U Max", "U Max_Inst", "U  [Microsoft][ODBC Driver 11 for SQL Serve][SQL  "U Max_I2", "U Max_I3 QODBC3: Unable to execute statement

我的生活中肯定得到了更好的错误,但这只是一个暗示。

代码:

SqlTableModel::SqlTableModel( QObject* parent, QSqlDatabase db ) : QSqlTableModel( parent, db )
{

}

auto SqlTableModel::initialize() -> void
{
    if ( !database().open() ) {
        QSqlError error = database().lastError();
        std::cout << "ERROR: Couldn't open database: " << error.text().toStdString() << std::endl;
        return;
    }

    getRows();
}

auto SqlTableModel::getRows() -> void
{
    setTable( "MyTable" );
    if ( select() ) {
        std::cout << "selected returned true." << std::endl;
    } else {
        std::cout << "failed to select" << std::endl;
        std::cout << "ERROR: " << lastError().text().toStdString() << std::endl;
    }
}

如果我想尝试解决此问题并手动选择表中的某些列(IE,带有查询),是否需要使用QSqlQueryModel,然后为每个相邻记录调用setData()?

0 个答案:

没有答案