Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ QSqlTableModel Unable to find table

Автор: neneTc 5.6.2010, 18:34

Здравствуйте! Возникла проблема при создании QSqlTableModel. Объявляю и инициализирую правильно, а все равно каждый раз QSqlError(-1, "Unable to find table ", ""). Дело точно не в таблице, в других программах отображается правильно.
Объявляю в модуле класса как указатель, инициализирую по открытию подключения:

    myMySQLCon=QSqlDatabase();
    myMySQLCon.close();
    QSqlDatabase::removeDatabase("DataServer");
    myMySQLCon=QSqlDatabase::addDatabase("QMYSQL", "DataServer");
    myMySQLCon.setHostName(gHost);
    myMySQLCon.setUserName(gUser);
    myMySQLCon.setPassword(gPass);
    myMySQLCon.setPort(gPort);
    myMySQLCon.setDatabaseName("ForTest");
    if(myMySQLCon.open())
    {
        tableMdl=new QSqlTableModel(this);
        tableMdl->setTable("Test1");
        tableMdl->setEditStrategy(QSqlTableModel::OnManualSubmit);
        tableMdl->select();
        qDebug()<<tableMdl->lastError();
        ui->tableView->setModel(tableMdl);
    }

Помогите пожалуйста, очень нужно.

Автор: Litkevich Yuriy 5.6.2010, 19:00

Цитата(neneTc @ 5.6.2010, 22:34) *
Test1
имя содержит символы в разном регистре. Начиная с Qt 4.5 это приводит к проблемам.
Возможный выход:
tableMdl->setTable(myMySQLCon.driver()->escapeIdentifier("ForTest", QSqlDriver::TableName));
Но это может не работать в Qt 4.4 и ниже

Автор: neneTc 7.6.2010, 16:35

проблема как-то сама собой решилась, спасибо за внимание!

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)