crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в SQL Модели
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 20.4.2009, 1:57
 
Цитата(defnull @ 20.4.2009, 5:51) *
который заново выставляет setQuery? И именно там и проверять на ошибки?
совершенно верно

Цитата(Litkevich Yuriy @ 20.4.2009, 5:54) *
по поводу размещение модели в потоке как я понимаю утвердительный ответ?)), тоесть работать будет нормально?)
посмотри тут ты увидишь, что интерисующие тебя вещи находятся в модуле SQL.
А в доп потоках НЕЛЬЗЯ создавть только те классы, которые находятся в модуле QtGui, т.е. представления.

Цитата(defnull @ 20.4.2009, 5:51) *
Есть класс A и Z которые оба созда...
Давай придерживатся правила: "Одна проблема - одна тема"
defnull Дата 20.4.2009, 1:51
  Гм вероятно я не совсем понял. Мне надо обновлять таблицу например по кнопке на предмет новых данных в базе. Получается мне каждый раз надо вызывать слот который заново выставляет setQuery? И именно там и проверять на ошибки?
(по поводу размещение модели в потоке как я понимаю утвердительный ответ?)), тоесть работать будет нормально?)

з.ы. на соседней теме я слегка застрял да и мысли перетекли слегка в другое русло.)) Если интересно то я упёрся в проблему такого характера.
Есть класс A и Z которые оба создаются в main(). Z - наследует Qthread и в теле run() выделяется память для класса D указатель которого храниться в Z. Проблема соединить сигнал класса A с слотом класса D. Так как мы не можем гарантировать что D уже создался к тому времени как мы соединяем их с A в секции main() (вроде бы из=за этого мне компилятор и выдавал ошибку.. хотя тип соединения был QuuedCOnnection который вообще доджен черех exec передавать)

з.з.ы пока писал пришла идея высылать сигнал из секции run класса Z когда там всё создасться...
сорри за офтоп
Litkevich Yuriy Дата 20.4.2009, 1:36
 
Цитата(defnull @ 20.4.2009, 5:23) *
но совершенно не ясно как получать ошибки??
см. методы модели, там есть.
Я так делаю:
    reportmodel->setQuery(qstr, db);
    qerr = reportmodel->lastError().text();
        qDebug() << "P_HORLYPWR_OFMONTH " << qerr;
или
    model->setTable(tableName);
    if (model->lastError().type() != QSqlError::NoError)
    {
        QMessageBox::critical(0, tr("Ошибка"),
                                    tr("Невозможно получить доступ к таблице ")
                                    + "\"" + tableName + "\""
                                    +tr("\n\rПричина: ")
                                    +(model->lastError().databaseText()),
                                    QMessageBox::Cancel);
    }
в зависимоти от типа модели

Цитата(defnull @ 20.4.2009, 5:23) *
И самое интересное.. можно ли сделать так чтобы TableView работал в одном потоке а sql модель в другом?
ты же создавал сходную тему, только класс другой ;)
defnull Дата 20.4.2009, 1:23
  Что-то я слегка не понимаю sql модели. Как установить с каким соединением к бд работать понятно, но совершенно не ясно как получать ошибки?? например о том что разорванно соединение с базой данных? Сигналов я что-то не нашёл подходящих(( Могу ли я на лету изменять setQuery (например критерии поиска спользуются ) ? И самое интересное.. можно ли сделать так чтобы TableView работал в одном потоке а sql модель в другом?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 8:28