Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 24.11.2008, 15:22 |
сообщение Driver not loaded driver not loaded это только, когда с драйвером проблемы.для SQLite ненужно указывать узел (setHostName) Если ты работаешь только с одной БД в своей программе, создай соединение по умолчанию:
это ты должен создать, где-то в начале работы с программой, а затем использовать это соединение по умолчанию:
Из асистента (к сожалению еще нет на сайте): Цитата Подробное описание Класс QSqlDatabase предоставляет подключение к базе данных. Класс QSqlDatabase предоставляет абстрактный интерфейс для доступа к базе данных. Он использует конкретный QSqlDriver базы данных для доступа и манипуляции данными. В следующем коде показано как установить соединение:
После создания объекта QSqlDatabase, устанавливаем параметры соединения с помощью setDatabaseName(), setUserName(), setPassword(), setHostName(), setPort(), и setConnectOptions(). Только после установки параметров вызывается open() для открытия соединения. Соединение определеное выше — безымянное соединение. Это соединение по умолчанию и доступ к нему может быть получен позже используя database():
Чтобы сделать програмирование более удобным, QSqlDatabase реализован как класс-значение (англ. "value class"). Любые изменения сделаные в соединении с базой данных через один объект QSqlDatabase будут влиять на другие объекты QSqlDatabase представляющие это же соединение. Вызовите cloneDatabase(), если вы хотите создать независимое соединение с базой данных на основе существующего. Если вы нуждаетесь во множестве соединений с базами данных одновременно, определите произвольное имя в addDatabase() и database(). Вызовите removeDatabase(), чтобы удалить соединение. QSqlDatabase выведет предупреждение, если вы попытаетесь удалить соединение, указанное в других объектах QSqlDatabase. Используйте contains(), чтобы видеть если заданное имя соединения есть в списке соединений. Как только соединение установлено вы можете посмотреть, какие таблицы база данных предоставляет с помощью tables(), найти первичный индекс для таблицы с помощью primaryIndex(), получить мета-информацию о полях таблицы (например, их имена) с помощью record() и выполнить запрос с помощью exec(). Если транзакции поддерживаются, вы можете использовать transaction(),чтобы начать транзакцию, и затем commit() или rollback(), чтобы завершить ее. Вы можете узнать поддерживается ли транзакция используя QSqlDriver::hasFeature(). При использовании транзакции вы должны начать транзакцию, прежде чем создадите свой запрос. Если произошла ошибка, она может быть получена с помощью lastError(). Имена SQL драйверов доступны из drivers(), вы можете проверить доступность драйвера с помощью isDriverAvailable(). Если вы создали свой собственный драйвер, вы можете зарегистрировать его с помощью registerSqlDriver(). Смотрите также QSqlDriver, QSqlQuery, Модуль QtSql и Потоки и Модуль QtSql. |
|
molchanoviv | Дата 24.11.2008, 13:41 |
Не то. Ибо если я изменю функцию createDatabase так
и вызову ее в одном из классов, то тогда работает. |
|
Litkevich Yuriy | Дата 24.11.2008, 12:43 |
Driver not loaded driver not loaded плагина нет. |
|
molchanoviv | Дата 24.11.2008, 11:46 |
собсно вопрос про SQLite был к чему: Необходимо работать с одной SQL базой из двух классов, не пойму как это реализовать. Хотел сделать так:
и вызывать эту функцию в конструкторах этих классов. но получаю при выполнении вот что Driver not loaded driver not loaded Может я по рассеяности опять что пропустил? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 19:36 |