crossplatform.ru

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

> Qt + SQLite, Не могу закрыть соединение с базой
Dimix
  опции профиля:
сообщение 24.11.2010, 14:44
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 24.11.2010
Пользователь №: 2215

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я новичек в программировании средствами Qt да еще и с использованием SQLite. Прошу сильно не критиковать.

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

QSqlQuery::exec: database not open

Я напливал на это оповещение и решил продолжить. Пытаюсь добавить в нее запись (ничего не происходит). Начинаю добавлять запись в Главную БД (соединение с которой разрывал) оно добавляет без проблем. (имена баз все разные) ОБЪЯСНИТЕ НОВИЧКУ. Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Dimix
  опции профиля:
сообщение 25.11.2010, 13:50
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 24.11.2010
Пользователь №: 2215

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ничего не помогает. Может кто то знает еще какие либо варианты почему не получается?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dimix
  опции профиля:
сообщение 7.12.2010, 15:14
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 24.11.2010
Пользователь №: 2215

Спасибо сказали: 0 раз(а)




Репутация:   0  


Проблема вот такого плана

существует виджет QLineEdit
создаю БД по обращению к функции
bool maindbCreate()
{
    QSqlDatabase maindbCreate = QSqlDatabase::addDatabase("QSQLITE");
    maindbCreate.setDatabaseName("base.db");
    maindbCreate.setHostName("localhost");
    maindbCreate.setUserName("user");
    maindbCreate.setPassword("password");
    if(!maindbCreate.open()){
        maindbCreate.lastError().text();
        QSqlDatabase::removeDatabase("QSQLITE");
    }else{
        maindbCreate.close();
        QSqlDatabase::removeDatabase("QSQLITE");
        return false;
    };
    return true;
}

создаю Таблицу по обращению к функции
bool maindbCreateTable()
{
    QSqlDatabase maindbCreateTable = QSqlDatabase::addDatabase("QSQLITE");
    maindbCreateTable.setHostName("localhost");
    maindbCreateTable.setDatabaseName("base.db");
    if(!maindbCreateTable.open("user", "password")){
        maindbCreateTable.lastError().text();
        QSqlDatabase::removeDatabase("QSQLITE");
    }else{
    QSqlQuery queryMaindbCreateTable;
    queryMaindbCreateTable.exec("CREATE TABLE user (id INTEGER PRIMARY KEY NOT NULL, name VARCHAR(20));");
    queryMaindbCreateTable.clear();
    maindbCreateTable.close();
    QSqlDatabase::removeDatabase("QSQLITE");
    return false;
    };
return true;
}

пытаюсь заполнить таблицу по обращению к функции
bool maindbInsert()
{
    QSqlDatabase maindbInsert = QSqlDatabase::addDatabase("QSQLITE");
    maindbInsert.setHostName("localhost");
    maindbInsert.setDatabaseName("base.db");
    if(!maindbInsert.open("user", "password")){
        maindbInsert.lastError().text();
        QSqlDatabase::removeDatabase("QSQLITE");
    }else{
    QSqlQuery queryMaindbInsert;
    queryMaindbInsert.exec("INSERT INTO (name) VALUES ('"+editCreateName->text()+"');");
    queryMaindbInsert.clear();
    maindbInsert.close();
    QSqlDatabase::removeDatabase("QSQLITE");
    return false;
    };
return true;
}

Она ругается на editCreateName->text() вот что пишет : error: ‘editCreateName’ was not declared in this scope
Как надо правильно ПОМОГИТЕ!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Dimix   Qt + SQLite   24.11.2010, 14:44
- - panter_dsd   Код приведи закрытия подключения и открытия нового...   24.11.2010, 15:30
|- - Dimix   Цитата(panter_dsd @ 24.11.2010, 15:30) Ко...   24.11.2010, 16:05
- - panter_dsd   Не храни db, ты всегда можешь его получить. Вот та...   24.11.2010, 16:50
|- - Dimix   В этой строке же нужно указать какой тип БД я хочу...   24.11.2010, 17:12
- - panter_dsd   SQLite не поддерживает пароли. QSqlDatabase::data...   24.11.2010, 17:15
|- - Dimix   Цитата(panter_dsd @ 24.11.2010, 17:15) .....   24.11.2010, 17:49
- - panter_dsd   Значит что-то ее держит. Модель какая-нибудь.   24.11.2010, 17:51
|- - Dimix   Цитата(panter_dsd @ 24.11.2010, 18:51) Зн...   24.11.2010, 18:09
- - panter_dsd   Попробуй метод clear ().   24.11.2010, 20:01
- - Dimix   Ничего не помогает. Может кто то знает еще какие л...   25.11.2010, 13:50
|- - BRE   Цитата(Dimix @ 25.11.2010, 13:50) Ничего ...   25.11.2010, 14:10
||- - 512es   Привьём пожалуй любовь к QtSql =)) Сделай вот так:...   2.12.2010, 18:33
|- - Dimix   Проблема вот такого плана существует виджет QLine...   7.12.2010, 15:14
- - Алексей1153   наверное, не зря ругается, и так оно и есть Попро...   7.12.2010, 22:09
|- - Dimix   Цитата(Алексей1153 @ 7.12.2010, 22:09) на...   8.12.2010, 15:56
|- - Dimix   Цитата(Dimix @ 8.12.2010, 15:56) Вопрос в...   8.12.2010, 16:57
- - Litkevich Yuriy   Цитата(Dimix @ 8.12.2010, 18:57) Разобрал...   8.12.2010, 20:30
- - 512es   Dimix, если честно вообще ничего в твоём примере н...   8.12.2010, 20:40
|- - Dimix   Почему не соотвецтвует вопросу . Я же не говорил...   8.12.2010, 20:55
- - 512es   1) склайту не нужно указывать HostName, UserName и...   8.12.2010, 21:05
|- - Dimix   ЦитатаМне показалось или ты и правда пытаешься соз...   10.12.2010, 13:17
|- - Dimix   ЦитатаВ БД существует поле Дата. Как сделать фильт...   10.12.2010, 17:55
- - 512es   Dimix, почитай доки про склайт. совершенно безопас...   10.12.2010, 22:14
- - Dimix   Возникла проблема такого характера. Нужно изменить...   13.12.2010, 2:07


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 13:38