crossplatform.ru

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


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

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

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


Последние 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 Текстовая версия Сейчас: 4.6.2020, 8:16