powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неверное определение типа параметра
9 сообщений из 9, страница 1 из 1
Неверное определение типа параметра
    #39726756
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос:
Код: sql
1.
2.
3.
4.
5.
select
    t.*
from test_table t
where
    bin_and(t.groups, :gm) <> 0



DDL таблицы
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE TEST_TABLE (
    ID      INTEGER,
    A       INTEGER,
    GROUPS  BIGINT
);



После prepare получаем тип для параметра gm - integer. Ожидал что должен быть bigint (Как бы логично по типу первого аргумента)

Это баг или фича?

Код: plaintext
Server Version: LI-V3.0.4.33047 Firebird 3.0
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726784
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slay2012После prepare получаем тип для параметра gm - integer.
Что за integer?
Есть такие:
Код: pascal
1.
2.
3.
SQL_LONG  = 496;
SQL_SHORT = 500;
SQL_INT64 = 580;


Какой из них? Или другой? Какой код типа?
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726786
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockslay2012После prepare получаем тип для параметра gm - integer.
Что за integer?
Есть такие:
Код: pascal
1.
2.
3.
SQL_LONG  = 496;
SQL_SHORT = 500;
SQL_INT64 = 580;


Какой из них?

SQL_LONG
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726791
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slay2012,

Тогда похоже на баг где-то.

А если попробовать самому переопределить параметр как SQL_INT64?
(если это Delphi IBX - для этого достаточно написать Params[0].AsInt64 = 1234567890123)

Запрос правильно сработает или нет? Если нет - значит точно баг сервера, если да - то возможно клиента, а то и компонентов доступа.
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726795
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Я пофиксил просто через cast
Код: sql
1.
2.
3.
4.
5.
select
    t.*
from test_table t
where
    bin_and(t.groups, cast(:gm as bigint)) <> 0


Так работает
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726820
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockА если попробовать самому переопределить параметр как SQL_INT64?
(если это Delphi IBX - для этого достаточно написать Params[0].AsInt64 = 1234567890123)

нет ибо буфер под параметры определяется на этапе prepare
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726913
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисYuRockА если попробовать самому переопределить параметр как SQL_INT64?
(если это Delphi IBX - для этого достаточно написать Params[0].AsInt64 = 1234567890123)

нет ибо буфер под параметры определяется на этапе prepareДа, но его можно поменять вручную (с неизвестными последствиями).
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726964
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

параметры будут конвертироваться из заданного тобой типа в тип, определенный на этапе препаре. Последствия вполне предсказуемы.
...
Рейтинг: 0 / 0
Неверное определение типа параметра
    #39726969
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slay2012После prepare получаем тип для параметра gm - integer. Ожидал что должен быть bigint (Как бы логично по типу первого аргумента)

Это баг или фича?
тип параметра выводится из нуля в неравенстве. Если общественность решит, что при наличии хоть одного явного аргумента BIN_* лучше использовать его тип и для параметра - пишем в трекер.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неверное определение типа параметра
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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