crossplatform.ru

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


  Ответ в Сколько нужно QSqlDatabase на проэкт ?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 10 сообщений [ в обратном порядке ]
CodeHunter Дата 18.10.2010, 13:06
 
Цитата(Litkevich Yuriy @ 27.8.2010, 19:36) *
создаём соединение, где-то и заранее:

Где-то может быть где угодно !
igor_bogomolov Дата 18.10.2010, 11:55
 
Цитата(CodeHunter)
Ага, а попробуй сделать так в много поточной программе.. Я посмотрю что ты получишь !!
Тут все зависит от архитектуры приложения !
Что за очередной дурацкий комментарий? Если ты не читаешь документации и пытаешься использовать соединение с БД созданном в одном потоке из другого, то это твои проблемы.
CodeHunter Дата 18.10.2010, 9:55
 
Цитата(Litkevich Yuriy @ 27.8.2010, 19:36) *
используем потом где-то?
QSqlDatabase db1 = QSqlDatabase::database();



Ага, а попробуй сделать так в много поточной программе.. Я посмотрю что ты получишь !! :lol2:
Тут все зависит от архитектуры приложения !
Litkevich Yuriy Дата 27.8.2010, 19:36
  вообще практика простая:
создаём соединение, где-то и заранее:
QSqlDatabase db1 = QSqlDatabase::addDatabase("тут имя драйвера");

используем потом где-то
QSqlDatabase db1 = QSqlDatabase::database();
potkin Дата 27.8.2010, 9:21
  molchanoviv,
Спасибо, всё заработало :)
molchanoviv Дата 27.8.2010, 8:02
  Есть такой необязательный параметр как имя соединения следующий за названием драйвера в функции addDatabase используй его. Ибо по умолчанию ставится название qt_sql_default_connection
potkin Дата 26.8.2010, 22:12
 
//00000000000
    QSqlDatabase db = QSqlDatabase::addDatabase(ui->cBServer->currentText());
    db.setHostName(ui->lEHostName->text());
    db.setDatabaseName(ui->lEDatabaseName->text());
    db.setUserName(ui->lEUserName->text());
    db.setPassword(ui->lEPasswor->text());

//11111111111
    QSqlTableModel *model;
    model = new QSqlTableModel();
    model->setTable("question");
    model->filter();
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
   if (model->select())
    {
       model->setHeaderData(0, Qt::Horizontal, tr("questionID"));
       model->setHeaderData(1, Qt::Horizontal, tr("urgency"));
       ui->tVQuestions->setModel(model);
       ui->tVQuestions->resizeColumnsToContents();
    }
    else QMessageBox::warning(this, tr("Cached Table"), tr("The database reported an error: %1").arg(model->lastError().text()));

//22222222222
    QSqlDatabase db1 = QSqlDatabase::addDatabase(ui->cBServer->currentText());
    db1.setHostName(ui->lEHostName->text());
    db1.setDatabaseName(ui->lEDatabaseName->text());
    db1.setUserName(ui->lEUserName->text());
    db1.setPassword(ui->lEPasswor->text());

    QSqlQuery query(db1);
    if(db1.open())
    {
        query.exec("SELECT questionurgencyID, name FROM questionurgency");
        while (query.next()) ui->cBurgency->addItem(query.value(1).toString(), query.value(0).toString());
        db1.close();
    }
    else QMessageBox::warning(this, tr("Cached Table"), tr("The database reported an error: %1").arg("DB:"+db1.lastError().text()+", QUERY:"+query.lastError().text()));


Вследситвии такого кода, в таблице ячейки будут не заполнеными.

Тоесть,е сли у меня в таблице "question" 2-е записи, то в таблице "ui->tVQuestions" появятся 2-е строки с заполнеными ячейками. Но после выполнения кода:
 QSqlDatabase db1 = QSqlDatabase::addDatabase(ui->cBServer->currentText());

Две строки останутся, но ячейки станут пустые :(
Алексей1153 Дата 26.8.2010, 21:17
  А в чём подвох ? :)
Напиши более развёрнуто мысль свою
potkin Дата 26.8.2010, 20:59
  Сколько нужно QSqlDatabase на проэкт ???
QSqlDatabase db = QSqlDatabase::addDatabase(ui->cBServer->currentText());
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 23:40