Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FibPlus не умеет передавать boolean-параметры / 25 сообщений из 37, страница 1 из 2
10.06.2018, 09:22
    #39659181
scorpion235
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Окружение:
Delphi 10.2 Update 3 Tokyo Architect
FIBPlus 7.632.3171 ( https://github.com/madorin/fibplus)
Firebird 3.0.3.32900

В Firebird 3 появились пакеты и тип данных boolean
Не смог добиться передачи boolean-параметра в Firebird
через компоненты FIBPlus

Передаю из Delphi:
авторFIBDataSet.ParamByName('PARAM_NAME').AsBoolean := true;
но в Firebird уходит числовое значение 1

Кто-нибудь сталкивался с подобным?
...
Рейтинг: 0 / 0
10.06.2018, 09:46
    #39659184
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Видимо, авторы ФИБов не научили компоненты различать версии сервера, поэтому ФИБы занимаются эмуляцией даже в 3.х.
...
Рейтинг: 0 / 0
10.06.2018, 09:48
    #39659185
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
ЛюбезныйВидимо, авторы ФИБов не научили компоненты различать версии сервера, поэтому ФИБы занимаются эмуляцией даже в 3.х.
ФИБы авторы давным-давно забросили
...
Рейтинг: 0 / 0
10.06.2018, 09:54
    #39659188
scorpion235
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Энтузиасты продолжают развитие проекта FibPlus на github
Завел багу: https://github.com/madorin/fibplus/issues/27
...
Рейтинг: 0 / 0
10.06.2018, 10:13
    #39659193
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
scorpion235...
Передаю из Delphi:
авторFIBDataSet.ParamByName('PARAM_NAME').AsBoolean := true;
но в Firebird уходит числовое значение 1
...
Ну "уходит" и уходит, в чем проблема-то?
...
Рейтинг: 0 / 0
10.06.2018, 11:45
    #39659211
scorpion235
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
чччД__,

дополнительный обработчик приходиться делать на стороне Firebird
SMALLINT преобразовывать в BOOL

автор PROCEDURE SET_ACC_LOCK (
ID TYPE OF COLUMN ABONENTS.ID,
IS_ACC_LOCK SMALLINT) --FibPlus не умеет корректно работать с параметрами типа boolean
AS
BEGIN
UPDATE ABONENTS
SET IS_ACC_LOCK = INT_TO_BOOL(:IS_ACC_LOCK)
WHERE ID = :ID;
END

--переводит SMALLINT в BOOL
FUNCTION INT_TO_BOOL (
NUMBER SMALLINT)
RETURNS BOOL
AS
BEGIN
IF (NUMBER = 1) THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END
...
Рейтинг: 0 / 0
10.06.2018, 13:56
    #39659252
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
scorpion235чччД__,

дополнительный обработчик приходиться делать на стороне Firebird
SMALLINT преобразовывать в BOOL

автор PROCEDURE SET_ACC_LOCK (
ID TYPE OF COLUMN ABONENTS.ID,
IS_ACC_LOCK SMALLINT) --FibPlus не умеет корректно работать с параметрами типа boolean
AS
BEGIN
UPDATE ABONENTS
SET IS_ACC_LOCK = INT_TO_BOOL(:IS_ACC_LOCK)
WHERE ID = :ID;
END

--переводит SMALLINT в BOOL
FUNCTION INT_TO_BOOL (
NUMBER SMALLINT)
RETURNS BOOL
AS
BEGIN
IF (NUMBER = 1) THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END

если тебе не надо делать над полем операции, характерные только для boolean,
то ничего не надо преобразовывать - работай как 1 или О
...
Рейтинг: 0 / 0
10.06.2018, 14:00
    #39659256
scorpion235
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
defecator,

для кого пример написал? обновление поля типа BOOL с дополнительными приседаниями
0 и 1 - это хорошо, но если появился новый тип данных, хочется с ним работать без
дополнительных преобразований
...
Рейтинг: 0 / 0
10.06.2018, 14:02
    #39659260
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
scorpion235defecator,

для кого пример написал? обновление поля типа BOOL с дополнительными приседаниями
0 и 1 - это хорошо, но если появился новый тип данных, хочется с ним работать без
дополнительных преобразований
ну хоти, чо
...
Рейтинг: 0 / 0
10.06.2018, 14:49
    #39659274
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
scorpion235Энтузиасты продолжают развитие проекта FibPlus на github
Завел багу: https://github.com/madorin/fibplus/issues/27
Этот форк настолько багнутый, что в 10.2 пришлось отказаться от фибов вообще.
Во множестве мест интерфейсы на обниливаются, память портит, проект ложит на лопатки.
...
Рейтинг: 0 / 0
10.06.2018, 14:52
    #39659276
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Олег Третьяковscorpion235Энтузиасты продолжают развитие проекта FibPlus на github
Завел багу: https://github.com/madorin/fibplus/issues/27
Этот форк настолько багнутый, что в 10.2 пришлось отказаться от фибов вообще..
В итоге - что решили использовать?
...
Рейтинг: 0 / 0
10.06.2018, 14:57
    #39659278
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
чччД__В итоге - что решили использовать?
То, что в 10.2 из коробки
...
Рейтинг: 0 / 0
10.06.2018, 14:58
    #39659280
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Олег ТретьяковчччД__В итоге - что решили использовать?
То, что в 10.2 из коробки
правильное решение, фибы давно мертвы, а кто-то всё продолжает за них держаться
...
Рейтинг: 0 / 0
10.06.2018, 15:04
    #39659282
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Олег ТретьяковчччД__В итоге - что решили использовать?
То, что в 10.2 из коробки
И что же было в тот раз в коробке?
...
Рейтинг: 0 / 0
10.06.2018, 15:06
    #39659283
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
defecatorправильное решение, фибы давно мертвы, а кто-то всё продолжает за них держаться
Пришлось конечно рефакторить. Многопоточка, свои коннекты под каждый поток и работа с блобами тут немного иначе. Но зато работает стабильно и можно заняться более важными делами, чем ковыряние с этой бякой.
...
Рейтинг: 0 / 0
10.06.2018, 15:07
    #39659284
Олег Третьяков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
чччД__И что же было в тот раз в коробке?
То же самое, что и в прошлый))
Ща пинлюлей отгребем за флейм)
...
Рейтинг: 0 / 0
10.06.2018, 15:19
    #39659287
NickDee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
scorpion235Энтузиасты продолжают развитие проекта FibPlus на github
Завел багу: https://github.com/madorin/fibplus/issues/27
Разработчики фибов отдали их в опенсорс? Или опенсорс взял их у разработчиков без спросу?
Энтузиасты в курсе?
...
Рейтинг: 0 / 0
10.06.2018, 15:38
    #39659289
scorpion235
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
NickDee,

This repository is an attempt to keep alive one of the best suite of components that seems to be abandoned by Devrace, without pretending to any copyrights. Initial source code was taken from public forums.

The goal of this project is to collect patches, fix bugs, adjust code to latest versions of Delphi, improve functionality by adding new features.
...
Рейтинг: 0 / 0
10.06.2018, 16:01
    #39659291
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Надо было с самого начала выбирать API вместо кривых обёрток.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.06.2018, 16:03
    #39659293
scorpion235
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Олег Третьяков,

авторТо, что в 10.2 из коробки
По отзывам FireDac - не самое удачное решение, тем более FibPlus чётко только под Firebird заточен
...
Рейтинг: 0 / 0
10.06.2018, 22:17
    #39659341
vkorshun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Специально набросал небольшой тестовый проект. Все работает. Возможно что то Вы не правильно делаете - либо клиентская либа не та, диалект и т.д.
...
Рейтинг: 0 / 0
10.06.2018, 23:57
    #39659353
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
vkorshunСпециально набросал небольшой тестовый проект. Все работает. Возможно что то Вы не правильно делаете - либо клиентская либа не та, диалект и т.д.
+1
То же самое, примерно год назад специально ставил ( 20665907 ) фибы с гитхаба на Delphi 10.2, исключительно ради проверить работу фибов с полями типа boolean в FB3.*, все устроило.

Совершенно непонятны страдания ТС, что там на FB "уходит":
scorpion235...но в Firebird уходит числовое значение 1...
Какая разница, что "уходит", если все работает как ожидается.

И -
scorpion235Завел багу: https://github.com/madorin/fibplus/issues/27
- это вообще какой-то образец косноязычия: "не смог добиться", "в Firebird уходит".
...
Рейтинг: 0 / 0
11.06.2018, 04:20
    #39659365
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
vkorshunСпециально набросал небольшой тестовый проект. Все работает. Возможно что то Вы не правильно делаете - либо клиентская либа не та, диалект и т.д.

Только что поставил фибы с гитхаба (судя по всему, там развивается версии 7.6) на D2007, вместо своих 6.9.9.
С небольшими плясками, правда: пришлось чуть подправить файлы проекта (FIBPlusEditors2007.dpk и FIBPlusEditors2007.dsk) для D2007, но теперь все работает, и чертовы редакторы тоже.

Создал табличку с булевким полем:
Код: sql
1.
2.
3.
4.
CREATE TABLE TEST (
    ID      INTEGER NOT NULL,
    ISTRUE  BOOLEAN
);


накидал тест - все ОК, и с TpfibDataset, и с TpfibQuery, и обращение к полям и обращение к параметрам - все без проблем.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
INSERT INTO TEST(
    ID,
    ISTRUE
)
VALUES(
    :ID,
    :ISTRUE
)
...
UPDATE TEST
SET
    ISTRUE = :ISTRUE
WHERE
    ID = :OLD_ID


Можно и .AsBoolean (t/f), и .AsInteger (0/1), и .Value - все одинаково хорошо.

И даже boolean - параметр в условии работает:
Код: sql
1.
2.
3.
4.
5.
select t.id, t.istrue from test t
  where (t.istrue is null) or :cond
...
select t.id, t.istrue from test t
  where t.istrue or :cond


Код: pascal
1.
 fQ.ParamByName('cond').AsBoolean := True;



И "уходит", и "приходит". Как ожидается.
...
Рейтинг: 0 / 0
11.06.2018, 08:10
    #39659378
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
А это имеет принципиальное значение, чтобы на сервер уходил boolean вместо integer? Что мешает по старинке завести какой-нибудь булев домен типа
Код: pascal
1.
2.
3.
4.
CREATE DOMAIN DMN_BOOL AS
SMALLINT
NOT NULL
CHECK (VALUE IN (0,1,-1));


и все преобразования делать на клиенте? Или мозоли на пальцах кровоточат? :)
...
Рейтинг: 0 / 0
11.06.2018, 08:29
    #39659381
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FibPlus не умеет передавать boolean-параметры
Док,

все там как надо и без "доменной имитации" работает, это ТС тормозит.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FibPlus не умеет передавать boolean-параметры / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]