Russian Qt Forum

Qt => Базы данных => Тема начата: Вячеслав от Сентябрь 28, 2007, 17:39



Название: А ibpp кто-нибудь активно пользует
Отправлено: Вячеслав от Сентябрь 28, 2007, 17:39
Собственно subj.. Есть пара вопросов - может кто-нибудь подсказать ?
Вот пришлось под форточки приложение перетаскивать - компилятор vs2005

1) qt собираеться c -DUNICODE , и соответственно вылезают функции типа *W , их можно безболезнено менять на *A ( LoadLibraryA ) ?
2) толи от большого ума вижуал пытаеться из лонга bool сделать -
long id;
st->Get(1,st);
хотит прикрутить Get(int,bool&) - это как лечить ?
st это IBPP::Statement ....


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Tonal от Сентябрь 30, 2007, 08:53
1) qt собираеться c -DUNICODE , и соответственно вылезают функции типа *W , их можно безболезнено менять на *A ( LoadLibraryA ) ?
Эти функции отличаются типом принимаемого параметра.
Оканчивающиеся на A принимают const char*
А оканчивающиеся на W принимают const wchar_t*
Соответственно смотри, что в твоём случае будет "безболезненно" ;-)

2) толи от большого ума вижуал пытаеться из лонга bool сделать -
long id;
st->Get(1,st);
хотит прикрутить Get(int,bool&) - это как лечить ?
st это IBPP::Statement ....
В IBPP::Statement нет функции Get(int,long&), вот он и пытается понять, что тебе нужно.
Получается не очень. ;-)
Используй вместо long int32_t или int64_t, котороые фигурируют в сигнатурах.
В любом случае параметры передаваемые по ссылки должны по максимуму соответствовать сигнатуре - иначе можно нарваться - как ты сейчас.


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Вячеслав от Сентябрь 30, 2007, 17:09
1) qt собираеться c -DUNICODE , и соответственно вылезают функции типа *W , их можно безболезнено менять на *A ( LoadLibraryA ) ?
Эти функции отличаются типом принимаемого параметра.
Оканчивающиеся на A принимают const char*
А оканчивающиеся на W принимают const wchar_t*
Соответственно смотри, что в твоём случае будет "безболезненно" ;-)

2) толи от большого ума вижуал пытаеться из лонга bool сделать -
long id;
st->Get(1,st);
хотит прикрутить Get(int,bool&) - это как лечить ?
st это IBPP::Statement ....
В IBPP::Statement нет функции Get(int,long&), вот он и пытается понять, что тебе нужно.
Получается не очень. ;-)
Используй вместо long int32_t или int64_t, котороые фигурируют в сигнатурах.
В любом случае параметры передаваемые по ссылки должны по максимуму соответствовать сигнатуре - иначе можно нарваться - как ты сейчас.
С первым разобрался в лоб - лень было переписывать кусок ibpp c std::string на wstring таки просто поставил буковку A ;)
Со вторым сложнее - даже если я пишу
int32_t par;
st1->Get(1,par); VS пытаеться дернуть Get(int,bool&) :( Щаз влоб нарисовал st1->Get(1,&par); - это проскочило,но данные фукции обозваны DEPRECATED :(


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Tonal от Октябрь 01, 2007, 06:22
Со вторым сложнее - даже если я пишу
int32_t par;
st1->Get(1,par); VS пытаеться дернуть Get(int,bool&) :( Щаз влоб нарисовал st1->Get(1,&par); - это проскочило,но данные фукции обозваны DEPRECATED :(
Не должно такого быть.
Иначе бы она ешё на этапе разбора хедера ругнулась на одинаковые сигнатуры...
Покаж нормальный кусок кода.

P.S. По ibpp и вообще по Firebird/Interbase поспрошатиь ещё на http://forum.ibase.ru/phpBB2/index.php можно.


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Вячеслав от Октябрь 01, 2007, 07:24
До работы доползу - кину ;)
я в последнее время http://groups.google.ru/group/ru-firebird/topics?start=0&sa=N (http://groups.google.ru/group/ru-firebird/topics?start=0&sa=N) передпочитаю ;)


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Alex03 от Октябрь 03, 2007, 06:44
Сам раньше IBPP пользовал, а тут soci (http://soci.sourceforge.net/) присоветовали.


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Tonal от Октябрь 03, 2007, 08:48
А soci поддерживает одновременные транзакции на подключение и события?


Название: Re: А ibpp кто-нибудь активно пользует
Отправлено: Alex03 от Октябрь 03, 2007, 10:03
Я soci не пользовал, только сегодня поглядел по нему/ней инфо.
Похоже там поддержка IB/FB фиговенькая. Транзакцию толком не настроишь.
Событий как я понял нет.

Зато можно довольно легко реализовать преобразование типов (например из строки в БД в QString).