Russian Qt Forum
Май 18, 2012, 20:19
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
(Модератор:
Sergeich
) >
Как скомпилировать драйвер Firebird&
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как скомпилировать драйвер Firebird& (Прочитано 6311 раз)
echo
Гость
Как скомпилировать драйвер Firebird&
«
:
Апрель 25, 2008, 08:33 »
Имеется qt-win-opensource-src-4.2.3, MSVC2005, acs-4.2.3-patch1, qt-vsintegration-1.2.2.
Устанвливал qconfigure msvc2005 потом nmake.
Имеется текст программы которая работает с sqlite:
Код:
#include <QtSql>
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("addressbook");
db.setUserName("elton");
db.setHostName("epica");
db.setPassword("password");
if (!db.open()) {
qDebug() << "Cannot open database:" << db.lastError();
return false;
}
return true;
}
// ----------------------------------------------------------------------
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
if (!createConnection()) {
return -1;
}
//Creating of the data base
QSqlQuery query;
QString str = "CREATE TABLE addressbook ( "
"number INTEGER PRIMARY KEY NOT NULL, "
"name VARCHAR(15), "
"phone VARCHAR(12), "
"email VARCHAR(15) "
");";
if (!query.exec(str)) {
qDebug() << "Unable to create a table";
}
//Adding some information
QString strF =
"INSERT INTO addressbook (number, name, phone, email) "
"VALUES(%1, '%2', '%3', '%4');";
str = strF.arg("1")
.arg("Piggy")
.arg("+49 631322187")
.arg("piggy@mega.de");
if (!query.exec(str)) {
qDebug() << "Unable to do insert opeation";
}
str = strF.arg("2")
.arg("Kermit")
.arg("+49 631322181")
.arg("kermit@mega.de");
if (!query.exec(str)) {
qDebug() << "Unable to do insert operation";
}
if (!query.exec("SELECT * FROM addressbook;")) {
qDebug() << "Unable to execute query - exiting";
return 1;
}
//Reading of the data
QSqlRecord rec = query.record();
int nNumber = 0;
QString strName;
QString strPhone;
QString strEmail;
while (query.next()) {
nNumber = query.value(rec.indexOf("number")).toInt();
strName = query.value(rec.indexOf("name")).toString();
strPhone = query.value(rec.indexOf("phone")).toString();
strEmail = query.value(rec.indexOf("email")).toString();
qDebug() << nNumber << " " << strName << ";\t"
<< strPhone << ";\t" << strEmail;
}
return 0;
}
Как скомпилировать драйвер qibase (описать как можно подробней) и как подправит программу чтоб она работала с огнептицей???
Пользуемся тегами КОД!
«
Последнее редактирование: Апрель 25, 2008, 12:49 от pastor
»
Записан
BaltikS
Программист
Offline
Сообщений: 596
Re: Как скомпилировать драйвер Firebird&
«
Ответ #1 :
Апрель 25, 2008, 12:29 »
Да скомпилировать просто, указываешь пути в переменных окружения include и lib на пути FireBird и в путь...
У меня другой вопрос... Юзаю Файербёд 1 и 1.5 драйвер собрался и работает. Ну криво работает! Все надписи на русском, всё нормально. Но проблемма в следующем, что данные из таблиц выдаются не все, а из некоторых - вообще ничего не возвращается. Кто сталкивался с подобной проблеммой, подскажите...как быть?
Записан
crossly
phpBB Житель матрицы
Offline
Сообщений: 1277
Re: Как скомпилировать драйвер Firebird&
«
Ответ #2 :
Апрель 25, 2008, 17:42 »
Код:
qmake "INCLUDEPATH+=<путь к fb>\include" "LIBS+=-L<fb path>\lib\firebird_ms\lib" ibase.pro
nmake
по поводу второго вопроса ... проверь в какой кодировке хранятся данные в бд.. и какую использует qt...
Записан
нет препятствий патриотам... нет преград энтузиастам...
Константин
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2576
Re: Как скомпилировать драйвер Firebird&
«
Ответ #3 :
Апрель 25, 2008, 18:24 »
я пользую огнептиц 2.0 и 2.1 - недовыбранных данных не наблюдал
Записан
4.7
Gentoo ~amd64 / winxpprosp2 / fremantle armel
Qt - Qt Development Frameworks; QT - QuickTime
Вячеслав
Гость
Re: Как скомпилировать драйвер Firebird&
«
Ответ #4 :
Апрель 25, 2008, 21:51 »
Таки тафай-те ка подробнее
1) чего на базе кажет gstat ?
2) как цепляемся к базе ?
3) Индексы все живы ?
4) тот-же запрос через IBE например - что выдаст ?
Записан
Tonal
phpBB Супер
Offline
Сообщений: 1039
Карма Кагью
Re: Как скомпилировать драйвер Firebird&
«
Ответ #5 :
Апрель 28, 2008, 07:35 »
2 BaltikS
Кстати да, проверь корректность базы.
Или ты с SQL-ем не дружишь, или база убитая.
Записан
BaltikS
Программист
Offline
Сообщений: 596
Re: Как скомпилировать драйвер Firebird&
«
Ответ #6 :
Апрель 28, 2008, 21:07 »
Расказываю...
Поставил Огнептиц 1.0, а затем 1.5. С ним же скомпилил дрова... Захожу в стандартный пример SqlBrowser, произвожу коннект. Смотрю таблицы. В таблице где порядка 20000 записей показывается только 3!!!!! Где порядка 300 - 8 записей, где около 30 - все показываются! При этом индексы все в норме. ИБ эксперт всё подгружает нормально, а тут такая засада? Что делать, кто подскажет???
Записан
Вячеслав
Гость
Re: Как скомпилировать драйвер Firebird&
«
Ответ #7 :
Апрель 28, 2008, 23:20 »
Эта .... однако чудес не бывает
Какой клиент юзает кутя и какой ibe ?
все-таки че gstat кажет ?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3304
Re: Как скомпилировать драйвер Firebird&
«
Ответ #8 :
Апрель 29, 2008, 06:03 »
записи, которые не показывает Qt'я содержат русский текст?
а записи, которые показывает?
Записан
Юра.
Tonal
phpBB Супер
Offline
Сообщений: 1039
Карма Кагью
Re: Как скомпилировать драйвер Firebird&
«
Ответ #9 :
Апрель 29, 2008, 07:02 »
А FB 1.x ты по каким соображениям используешь?
Вроде уже давно 2.0.х в релизах, а недавно 2.1 вышел.
Записан
crossly
phpBB Житель матрицы
Offline
Сообщений: 1277
Re: Как скомпилировать драйвер Firebird&
«
Ответ #10 :
Апрель 29, 2008, 21:06 »
ежели записи на русском языке советую все же поигратся с кодировкой....
Записан
нет препятствий патриотам... нет преград энтузиастам...
BaltikS
Программист
Offline
Сообщений: 596
Re: Как скомпилировать драйвер Firebird&
«
Ответ #11 :
Апрель 30, 2008, 07:36 »
- 1 FireBird использую потому что требование такое заказчика...
- Из за своей неопытности работы на нём я не знаю что такое gstat. Если можно просвятите...
- Кодировка в базе CP1251. И выбираются только русские записи. И среди выбранных тоже русские....
- Пробовал с ODBC- драйвером, вообще ничего не выбирается. Но если убрать кодировку WIN1251, то всё выбирается, но в какой то непонятной мне кодировке....
- с каким клиентом работает ИБЭксперт я не знаю... Со своим наверное видимо...
________________________________________________________________________
У меня вопрос, а если взять FB 2 и SDK и скомпилить драйвер к нему? И клиента его же. Будет ли он работать с FB 1? Я полагаю что должен, чем и займусь после праздников, экспериментами!!!
Записан
Alex03
Крякер
Offline
Сообщений: 369
Re: Как скомпилировать драйвер Firebird&
«
Ответ #12 :
Апрель 30, 2008, 08:14 »
Может
отсюда
чего полезного вычитаете.
Помимо кодировки БД (всей и отдельных полей) ещё бывает кодировка клиента, т.е. клиент преобразовывает данные БД в указанную ему кодировку.
Когдато была у меня проблема... Не помню в какой комбинации, но в одном месте размер полей считался в символах, в другом в байтах, что для кодировки UTF-8 (UNICODE_FSS) не является правильным...
Если у Вас чёнить типа
Код:
select ID from table
выполняется нормально то дело в кодировках и т.д.
Записан
Tonal
phpBB Супер
Offline
Сообщений: 1039
Карма Кагью
Re: Как скомпилировать драйвер Firebird&
«
Ответ #13 :
Апрель 30, 2008, 09:31 »
Клиент от FB2 с 1-кой работать будет, причём даже несколько быстрее.
IBExpert писан на delphi и работает через Fib+.
У меня проблем с кодировками не было, хотя базы тоже в win1251 были.
Кстати, Qt 4.2.3 - это тоже требования заказчика?
Сейчас вышел редиз 4.4.0.
Предыдущий релиз 4.3.4
Начиная с 4.3.2 MSVC поддерживается в Open Source версии.
Если мне склероз не изменяет, как-то недавно троли правили свой драйвер Interbase/Firebird как раз относительно Firebird-а.
Так что есть резон обновить версию.
Записан
Вячеслав
Гость
Re: Как скомпилировать драйвер Firebird&
«
Ответ #14 :
Апрель 30, 2008, 15:48 »
Цитата: BaltikS от Апрель 30, 2008, 07:36
- 1 FireBird использую потому что требование такое заказчика...
- Из за своей неопытности работы на нём я не знаю что такое gstat. Если можно просвятите...
- Кодировка в базе CP1251. И выбираются только русские записи. И среди выбранных тоже русские....
- Пробовал с ODBC- драйвером, вообще ничего не выбирается. Но если убрать кодировку WIN1251, то всё выбирается, но в какой то непонятной мне кодировке....
- с каким клиентом работает ИБЭксперт я не знаю... Со своим наверное видимо...
________________________________________________________________________
У меня вопрос, а если взять FB 2 и SDK и скомпилить драйвер к нему? И клиента его же. Будет ли он работать с FB 1? Я полагаю что должен, чем и займусь после праздников, экспериментами!!!
1) именно 1? а не 1.5x ??
2) утилитка идет вместе с птицем и показывает состояние базы
3) ODBC - нафиг лучше RTFM асистента
Цитировать
QIBASE Unicode Support and Text Encoding
By default the driver connects to the database using UNICODE_FSS. This can be overridden by setting the ISC_DPB_LC_CTYPE parameter with QSqlDatabase::setConnectOptions() before opening the connection.
// connect to database using the Latin-1 character set
db.setConnectOptions("ISC_DPB_LC_CTYPE=Latin1");
db.open();
соответственно пихать то, в чем реально база ....
4) про клиента от 2 Tonal уже сказал
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
=> Архив
===> Программирование
=====> Python
===> Веб программирование
=====> PHP, PERL, CGI
Загружается...