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

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

Страниц: 1 ... 3 4 [5]   Вниз
  Печать  
Автор Тема: Как организовать работу с БД FireBird 2.5 в среде Qt 4.8.4 + VC 2010?  (Прочитано 37718 раз)
Majestio
Гость
« Ответ #60 : Ноябрь 23, 2013, 10:54 »

А почему ты к БД не по сети пытаешься подсоединиться, а как к файлу?  Непонимающий
Записан
Bepec
Гость
« Ответ #61 : Ноябрь 23, 2013, 11:59 »

++. Собрал ibase под MSVC2008 и ток заметил последний комментарий.

Firebird это же серверная БД. Он к файлу и не подцепится.

PS собирается спокойно по вот этому руководству http://codedchaos.blogspot.ru/2011/07/qt-qibase-qt-firebird-embedded.html. Ток не емберред ставить нужно Улыбающийся
« Последнее редактирование: Ноябрь 23, 2013, 12:01 от Bepec » Записан
Majestio
Гость
« Ответ #62 : Ноябрь 23, 2013, 12:05 »

Firebird это же серверная БД. Он к файлу и не подцепится.

Вот и я о том же  Смеющийся
Записан
Bepec
Гость
« Ответ #63 : Ноябрь 23, 2013, 12:53 »

Руководство по сборке -  http://codedchaos.blogspot.ru/2011/07/qt-qibase-qt-firebird-embedded.html
Далее кидаем получившееся в каталог плагинов Qt. (\Qt\4.7.2\plugins\sqldrivers\)
Создаём БД в командной строке fireBird
Код:
SQL>CREATE DATABASE 'C:\test.fdb'↵
CON>user 'SYSDBA' password 'masterkey';↵

А далее уже создаём проект. Данный код рабочий однако Веселый

Код:
//#include <QSqlDatabase>
//#include <QDebug>
qDebug() << QSqlDatabase::drivers ();

QSqlDatabase db_ = QSqlDatabase::addDatabase("QIBASE");
db_.setHostName("localhost");
db_.setDatabaseName("c:/test.fdb");
db_.setUserName("SYSDBA");
db_.setPassword("masterkey");

if (!db_.open())
{
qDebug() << db_.lastError().text();
return ;
}
db_.exec("CREATE TABLE YahoooItsWORK(GQUANT INTEGER);");
qDebug() << db_.lastError().text();
qDebug() << db_.tables();

qApp->quit();

PS интересный у неё синтаксис, свои типы и прочая. Правда как программно создать БД я не понял, правда сильно и не интересовался Веселый
Записан
Dzeto
Гость
« Ответ #64 : Ноябрь 23, 2013, 14:06 »

Руководство по сборке -  http://codedchaos.blogspot.ru/2011/07/qt-qibase-qt-firebird-embedded.html
Далее кидаем получившееся в каталог плагинов Qt. (\Qt\4.7.2\plugins\sqldrivers\)

Т.е. я кидаю в этот каталог все файлы из "c:\Program Files (x86)\Firebird\Firebird_2_5\", такие как:
fbclient.dll;
firebird.msg;
ib_util.dll;
все файлы начинающиеся с icu* (icudt30.dll, icuin30.dll, icuuc30.dll)
каталог intl (скинул папкой);
каталог udf (скинул папкой, только у меня UDF);
aliases.conf (за компанию - не в курсе как использовать);
firebird.conf;

Вот что получилось:



Создаём БД в командной строке fireBird
Код:
SQL>CREATE DATABASE 'C:\test.fdb'↵
CON>user 'SYSDBA' password 'masterkey';↵

Можно ли использовать ту БД, которую я написал в IBExpert и которая лежит по адресу "D:\MYTESTBD.FDB" ?

А далее уже создаём проект. Данный код рабочий однако Веселый

Код:
//#include <QSqlDatabase>
//#include <QDebug>
qDebug() << QSqlDatabase::drivers ();

QSqlDatabase db_ = QSqlDatabase::addDatabase("QIBASE");
db_.setHostName("localhost");
db_.setDatabaseName("c:/test.fdb");
db_.setUserName("SYSDBA");
db_.setPassword("masterkey");

if (!db_.open())
{
qDebug() << db_.lastError().text();
return ;
}
db_.exec("CREATE TABLE YahoooItsWORK(GQUANT INTEGER);");
qDebug() << db_.lastError().text();
qDebug() << db_.tables();

qApp->quit();

Ставлю Ваш код - посмотрим что получится.



А получается, что все получается. Конектится к БД, exec создает там дополнительную таблицу. Ошибок никаких нет.

"Я: 63 ответа, 567 просмотров. Помогли:)
Она: Ну вот, а ты ревел"

Еще раз огромное спасибо!!!


P.S.
PS интересный у неё синтаксис, свои типы и прочая. Правда как программно создать БД я не понял, правда сильно и не интересовался Веселый
Вы же по сути и так создали БД программно. Имя БД можно так же создавать с помощью exec (CREATE DATABASE или что-то вроде того). Надеюсь, не ошибаюсь.

Записан
Majestio
Гость
« Ответ #65 : Ноябрь 23, 2013, 14:18 »

В \Qt\4.7.2\plugins\sqldrivers\ или в <путь-к-исполняемуму-файлу>\plugins\sqldrivers\ - кидаются только те два файла, которые получились после сборки драйверов. Остальные dll-ки ложатся рядом с exe-файлом или в любой каталог, зареганный в PATH
Записан
Bepec
Гость
« Ответ #66 : Ноябрь 23, 2013, 14:34 »

Да, попробуйте запустить на другом компе без куте - скорее всего потребуется fbclient.dll.
Записан
Dzeto
Гость
« Ответ #67 : Ноябрь 23, 2013, 19:45 »

Да, попробуйте запустить на другом компе без куте - скорее всего потребуется fbclient.dll.

Попробую завтра. Сегодня нет второго компа под рукой:)

Как к уже созданному проекту в VC2010 добавить SQL library, если эта библиотека не подключалась при создании проекта?
Ответ нашел. ПКМ на имени решения. Qt Project Settings.
« Последнее редактирование: Ноябрь 23, 2013, 20:39 от Dzeto » Записан
Majestio
Гость
« Ответ #68 : Ноябрь 23, 2013, 20:25 »

в Qt Creatore в .pro файле добавляется:

QT += sql

А как в VС ... без понятия, если он с .pro файлами работатет - то так, как выше
Записан
Dzeto
Гость
« Ответ #69 : Ноябрь 23, 2013, 20:38 »

в Qt Creatore в .pro файле добавляется:

QT += sql

А как в VС ... без понятия, если он с .pro файлами работатет - то так, как выше

Majestio, отредактировал свое предыдущее сообщение - там есть ответ внизу. Это я уже так - вопросы по мелочи задаю Улыбающийся
Записан
Страниц: 1 ... 3 4 [5]   Вверх
  Печать  
 
Перейти в:  


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