Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qwyllum от Июнь 07, 2013, 19:05



Название: "QMYSQL: Unable to execute query", "Unknown table
Отправлено: qwyllum от Июнь 07, 2013, 19:05
Подскажите пожалуйста, что может привести к ошибке QSqlError(1109, "QMYSQL: Unable to execute query", "Unknown table 'carrier' in field list")

Я не идиот, понимаю, что по идее такую ошибку должно выдавать если таблица не найдена. Но вот в чем загвоздка - таблица существует и чуть раньше с ней отлично работалось. В общем, проще наверное показать код:
Код:
Dialog::Dialog()
{
    sort1=new QSortFilterProxyModel(this);
    model1=new QSqlQueryModel();

    sortCarrier=new QSortFilterProxyModel(this);
     modelCarrier=new QSqlQueryModel();
}
void Dialog::init_tabCarrier()// отлично работает
{

        //получаем данные перевозчика
        modelCarrier->setQuery(
                    "SELECT carrier.id, carrier.name, carrier.master, carrier.phone FROM carrier ", db.body);

         sortCarrier->setSourceModel(modelCarrier);//модель для сортировки использует модель таблицы

         ui->tvCarrier->setModel(sortCarrier);

}

void Dialog::init_tabAppeal()
{
    QString str= "SELECT carrier.id"
            "FROM carrier";
    model1->setQuery(str
               , db.body);// это уже не работает

    qDebug()<<model1->query().lastError();// выдает вышеописанную ошибку

И вот не могу понять - два кода полностью сходятся - процесс инициализации моделей, выборка из БД, даже имя таблицы совпадает. Но один метод работает, второй - нет. В чем может быть проблема, подскажите, пожалуйста...


Название: Re: "QMYSQL: Unable to execute query", "Unknown table
Отправлено: LisandreL от Июнь 07, 2013, 19:18
Второй запрос
"SELECT carrier.idFROM carrier"
попробуйте вернуть пробел на место.


Название: Re: "QMYSQL: Unable to execute query", "Unknown table
Отправлено: qwyllum от Июнь 07, 2013, 19:21
Второй запрос
"SELECT carrier.idFROM carrier"
попробуйте вернуть пробел на место.
Я идиот. Спасибо Вам огромное, вы сэкономили пару часов времени и нервов.