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

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

Страниц: 1 ... 8 9 [10] 11 12 ... 14   Вниз
  Печать  
Автор Тема: Транзакции Interbase  (Прочитано 150587 раз)
arial
Гость
« Ответ #135 : Июнь 30, 2010, 11:24 »

На гуглокод напиши.
Записан
varkon
Гость
« Ответ #136 : Июль 06, 2010, 17:04 »

Подскажите пожалуйста в чем моя ошибка. Скачал файлы проекта и фалы ibpp, как и написано в ридми - добавил папку core в папку соотвествующей версии  - в данном случае  - ibpp2531, добавил в файл ibpp.pri
Код:
HEADERS += $$PWD/core/ibpp.h \
    $$PWD/core/ibpp.h \
    $$PWD/core/iberror.h \
    $$PWD/core/ibase.h \
    $$PWD/core/_ibpp.h \
    $$PWD/core/ibpp.h \
    $$PWD/core/iberror.h \
    $$PWD/core/ibase.h \
    $$PWD/core/_ibpp.h \
    $$PWD/core/ibpp.h \
    $$PWD/core/iberror.h \
    $$PWD/core/ibase.h \
    $$PWD/core/_ibpp.h
SOURCES += $$PWD/core/all_in_one.cpp \
    $$PWD/core/transaction.cpp \
    $$PWD/core/time.cpp \
    $$PWD/core/statement.cpp \
    $$PWD/core/service.cpp \
    $$PWD/core/row.cpp \
    $$PWD/core/exception.cpp \
    $$PWD/core/events.cpp \
    $$PWD/core/dbkey.cpp \
    $$PWD/core/date.cpp \
    $$PWD/core/database.cpp \
    $$PWD/core/blob.cpp \
    $$PWD/core/array.cpp \
    $$PWD/core/all_in_one.cpp \
    $$PWD/core/_tpb.cpp \
    $$PWD/core/_spb.cpp \
    $$PWD/core/_rb.cpp \
    $$PWD/core/_ibs.cpp \
    $$PWD/core/_ibpp.cpp \
    $$PWD/core/_dpb.cpp \
    $$PWD/core/user.cpp

выполнил qmake, пытаюсь собрать проект - получаю кучу предупреждений
Цитировать
build/debug/all_in_one.o:e:/qt/2010.02.1/mingw/bin/../lib/gcc/mingw32/4.4.0/include/c++/exception:62: multiple definition of `ibpp_internals::GDS::Call()'
build/debug/all_in_one.o:e:/qt/2010.02.1/mingw/bin/../lib/gcc/mingw32/4.4.0/include/c++/new:101: first defined here
...
и ошибок:
Код:
build/debug/all_in_one.o:all_in_one.cpp::-1: error: multiple definition of `ibpp_internals::DPB::BUFFERINCR'

что я делаю не правильно?
Записан
arial
Гость
« Ответ #137 : Июль 07, 2010, 06:48 »

В ibpp.pri ничего добавлять не надо.
Записан
varkon
Гость
« Ответ #138 : Июль 07, 2010, 07:11 »

В ibpp.pri ничего добавлять не надо.
Ну может быть.
В принципе разобрался в чем причина. В ридми прописано:
Цитировать
2. Copy IBPP source code to project/ibpp* dir,
На самом деле надо копировать не все - в директории сорцов ibpp лежит файл howtobuild - в которым черным по белому написано:
Цитировать
All the other code files (*.cpp) of the 'ibpp/core' folder must be compiled and
linked with your application as if they were original portions of your
application, except the file 'all_in_one.cpp'.
Т.е. надо либо все файлы, кроме "все в одном", либо только его. Я остановился на первом варианте, хотя может и второй удобнее. Ну и не забыть убрать цели сборки all_in_one из всех остальных файлов.
Записан
sarbash
Гость
« Ответ #139 : Июль 07, 2010, 08:43 »

Я тупо распаковал архив "ibpp-2-5-3-1-src.zip" в "..\qtfirebirdibppsqldriver-read-only\AxQtFbIbppSqlDriver\ibpp2531\" и собрал драйвер. Никаких дополнительных телодвижений не потребовалось. Да, еще либу от сервера положил в "\lib" (fbclient.lib).

P.S. Инструкция по сборке в "README.txt" драйвера, чтиво из "ibpp-2-5-3-1-src.zip" не нужно для сборки драйвера.
« Последнее редактирование: Июль 07, 2010, 08:47 от sarbash » Записан
varkon
Гость
« Ответ #140 : Июль 09, 2010, 09:43 »

Я тупо распаковал архив "ibpp-2-5-3-1-src.zip" в "..\qtfirebirdibppsqldriver-read-only\AxQtFbIbppSqlDriver\ibpp2531\" и собрал драйвер. Никаких дополнительных телодвижений не потребовалось. Да, еще либу от сервера положил в "\lib" (fbclient.lib).

P.S. Инструкция по сборке в "README.txt" драйвера, чтиво из "ibpp-2-5-3-1-src.zip" не нужно для сборки драйвера.

Я так сделал под Linux - все собралось нормально. Единственное - в файле _ibpp.h
мне пришлось добавить один инклад:
Код:
#include <cstring>
Записан
sarbash
Гость
« Ответ #141 : Июль 13, 2010, 16:16 »

Тот Патч http://code.google.com/p/qtfirebirdibppsqldriver/issues/detail?id=9, что я выкладывал, в общем, он глючный и пользоваться им не следует. Надеюсь, кроме меня никто не успел его попользовать, но на всякий случай решил отметить.
Записан
sarbash
Гость
« Ответ #142 : Июль 13, 2010, 21:13 »

В догонку к предыдущему сообщению.
В справке написано, что QIBASE поддерживает возвращаемое значение от ХП. Неплохо было бы допилить и этот драйвер... Моя попытка оказалась не удачной, может кому больше повезёт? Функционал, вообще-то, очень нужный. Да и тот же RETURNING тогда бы работал. У кого какие соображения по этому поводу? В списке рассылки по ibpp мне ответили, что данный функционал поддерживается, а здесь мне только SELECT-ом удалось получить значение от процедуры...
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #143 : Июль 13, 2010, 22:51 »

>>а здесь мне только SELECT-ом удалось получить значение от процедуры...
А процедура какая была, процедура выбора или выполняемая процедура?
Записан

Юра.
varkon
Гость
« Ответ #144 : Июль 14, 2010, 03:27 »

В догонку к предыдущему сообщению.
В справке написано, что QIBASE поддерживает возвращаемое значение от ХП. Неплохо было бы допилить и этот драйвер... Моя попытка оказалась не удачной, может кому больше повезёт? Функционал, вообще-то, очень нужный. Да и тот же RETURNING тогда бы работал. У кого какие соображения по этому поводу? В списке рассылки по ibpp мне ответили, что данный функционал поддерживается, а здесь мне только SELECT-ом удалось получить значение от процедуры...

вероятно в процедуре у тебя присутствует suspend. Именно поэтому работает только select для получения возвращаемого значения. Это нормально. Улыбающийся 
Записан
sarbash
Гость
« Ответ #145 : Июль 14, 2010, 07:18 »

вероятно в процедуре у тебя присутствует suspend. Именно поэтому работает только select для получения возвращаемого значения. Это нормально. Улыбающийся 
Ага! Точно! Так и есть. Процедуры я делал в "Эксперте", там в шаблоне по-умолчанию suspend стоит. Похоже, я плохо с ними разобрался... Прошу прощения, ушёл учить матчасть...
Записан
sarbash
Гость
« Ответ #146 : Июль 14, 2010, 13:34 »

>>а здесь мне только SELECT-ом удалось получить значение от процедуры...
А процедура какая была, процедура выбора или выполняемая процедура?
Из селективной процедуры вроде бы значение можно получить, а вот из исполняемой пока мне значение выудить не удалось. Грустный
Не понимаю, что делать?.. Остается только все делать селективными и селектами брать значения. Хотя, теоретически, исполняемая должна же синглтон хотя бы возвращать, или на бумаге одно, а на практике как повезёт? Кому-нибудь удалось вообще получить возвращаемые значения из исполняемых процедур или это я один такой счастливчик?

Код:
q.exec("execute procedure GET_AGENCY_NAME")
...
q.first();
qDebug() << q.value(0);

Вывод:
QSqlQuery::value: not positioned on a valid record
QVariant(, )


SOS.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #147 : Июль 14, 2010, 21:05 »

я через ODBC-драйвер делал execute procedure, всё как в аптеке работало.
А через QIBASE не пробовал, сейчас того исходника нет, чтобы быстро проверить.
Записан

Юра.
sarbash
Гость
« Ответ #148 : Июль 15, 2010, 00:12 »

Меня больше интересует, как получить возвращаемое значение в драйвере, обсуждаемом в топике? То, что написано в справке про QIBASE имеет очень косвенное отношение к QFIREBIRD. Понятно, что там возвращаемое значение извлекается, как если бы это был набор данных, но как это реализовано здесь и реализовано ли вообще?
Подразумеваю "EXECUTE PROCEDURE proc_name" с возвращаемыми значениями. Или кроме меня никто это не использует?
Записан
varkon
Гость
« Ответ #149 : Июль 15, 2010, 07:23 »

Меня больше интересует, как получить возвращаемое значение в драйвере, обсуждаемом в топике? То, что написано в справке про QIBASE имеет очень косвенное отношение к QFIREBIRD. Понятно, что там возвращаемое значение извлекается, как если бы это был набор данных, но как это реализовано здесь и реализовано ли вообще?
Подразумеваю "EXECUTE PROCEDURE proc_name" с возвращаемыми значениями. Или кроме меня никто это не использует?

я использую в основном селективные возвращаемые значения - т.е. которые с suspend - если критично именно возвращаемое  - проверю сегодня-завтра отпишусь.
Записан
Страниц: 1 ... 8 9 [10] 11 12 ... 14   Вверх
  Печать  
 
Перейти в:  


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