Russian Qt Forum
Ноябрь 27, 2024, 07:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Firebird 2.5 unavailable database  (Прочитано 8651 раз)
QuAzI
Гость
« : Декабрь 04, 2011, 23:25 »

Qt 2010.5, скачанный свежий инсталяк Firebird 2.5.1.
На удивление легко и без мата собрался плагин, но отказывается работать.
Код:
if (!db.open()
{
   qDebug() << db.databaseName() << db.userName() << db.password() << db.lastError();
}
Вываливает
Код:
"127.0.0.1:C:\Progra~1\Firebird\Firebird_2_5\examples\empbuild\EMPLOYEE.FDB" "SYSDBA" "masterkey" QSqlError(-904, "Error opening database", "unavailable database")
Файл существует, через консоль isql подключаюсь к нему на ура. Перенёс в корень диска - та же песня.
В директории с релизом лежат нужные fbclient.dll (взят из установленного Firebird, оттуда же тянулись инклюды для сборки плагина) и msvcr80.dll (в зависимостях у fbclient.dll), плагин в списке QSqlDatabase::drivers виден, зависимости все вроде учтены.
Чего ему ещё не хватает для счастья?  Может кто заведомо рабочим поделится?
Записан
QuAzI
Гость
« Ответ #1 : Декабрь 07, 2011, 12:01 »

Собрал драйвер к Firebird 2.1 - к базе подключается, выборка работает. Есть какая-то возможность стандартными методами создать базу данных из QIBASE, без использования особо страшных хаков и сторонних драйверов к FB, напичканных хаками и заточенных под отдельные версии?
Записан
joker
Новичок

Offline Offline

Сообщений: 49


Просмотр профиля
« Ответ #2 : Декабрь 09, 2011, 10:13 »

Ну в теории CREATE DATABASE должен помочь... но напрямую из Qt его вроде не дергнешь...
Может сделать скриптец создания базы и скормить isql?

ЗЫ Обычно не встречается софт которому нужно создавать свои базы - нужна уже готовая база где будет как минимум некий набор таблиц-справочников, так что может создание БД - вовсе и не надо?

ЗЫЫ С птичкой лучше работать с QFIREBIRD (http://code.google.com/p/qtfirebirdibppsqldriver/) - по крайней мере работают параметры для запросов да и быстрее он раз в несколько (на медленном соединении 10 минут вместо 3х часов QIBASE)
Записан
QuAzI
Гость
« Ответ #3 : Декабрь 09, 2011, 11:19 »

QFIREBIRD там выложен без отладочной библы, собирать было лениво, разберусь до конца с общими вопросами, займусь той базой.
isql с собой тягать не вариант. Нужно всё в рамках SQL-подключения.
Создавать базу нужно из приложения, чтобы максимально упростить разворачивание приложения. Для PostgreSQL и MySQL всё красиво в плане "создал юзверя, создал для него базу, создал таблички - радуйся жизни". А тут затык. Народ предлагает дёргать или жутко внутренний API (которого во первых описание ещё поискать нормально, во вторых непонятно как на разных версиях будет себя вести, в третьих полная фигня в плане переносимости или подмены плагина-драйвера БД с QIBASE на QFIREBIRD). Ну и вообще это не есть правильно, дёргать что-то мимо основного нормального SQL для сервера SQL.
Записан
vlad-mal
Гость
« Ответ #4 : Декабрь 10, 2011, 23:31 »

Чтобы по-быстрому скрипт выполнить, я с собой библиотечку IBEScript.dll (вместе с ibExpert идет) таскаю.
Там что хочешь можно делать.
Записан
QuAzI
Гость
« Ответ #5 : Декабрь 11, 2011, 01:08 »

Вариант интересный, но совершенно не кроссплатформенный
Записан
eJinn
Гость
« Ответ #6 : Май 13, 2013, 14:13 »

Есть какая-то возможность стандартными методами создать базу данных из QIBASE, без использования особо страшных хаков и сторонних драйверов к FB, напичканных хаками и заточенных под отдельные версии?
Создай пустую базу с нужными таблицами и пр. заранее, положи ее рядом со своей прогой. Вместо создания базы копируй эту заготовку на нужное место и заполняй из своей проги нужные таблички.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.