Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 23 24 25 26 [27]
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
hvlad
Member

Откуда:
Сообщений: 10955
CyberMax
Потому что мне на ровном месте сломали возможность работы с БД.
Не сгущай краски, с DataTypeCompatibilty = 3.0 твоё приложение должно работать как раньше.
23 июн 20, 10:07    [22155749]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
CyberMax
Поэтому хочу, чтобы SET BIND OF NUMERIC(38) TO LEGACY работал для всех чисел, а не только для определенных случаев. У меня по-прежнему половина запроса возвращает NUMERIC(38).


в свежем снапшоте это починили. И кстати это можно задать не только через SQL, но и через isc_dpb_set_bind.

Так что у тебя много вариантов:
  • Выставить в конфиге DataTypeCompatibilty = 3.0
  • В триггере ON CONNECT выполнить SET BIND OF NUMERIC(38) TO LEGACY
  • После коннекта в приложении выполнить SET BIND OF NUMERIC(38) TO LEGACY или задать isc_dpb_set_bind при коннекте
  • Добавить в компоненты доступа поддержку NUMERIC(38,x)

Первые два вообще не требуют модификации приложения. Третий это совсем незначительная модификация, и лишь 4 путь потребует хоть каких-то усилий от программиста.
23 июн 20, 11:30    [22155828]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1376
Симонов Денис
в свежем снапшоте это починили.

Это не чинили.

Симонов Денис
Так что у тебя много вариантов:
  • Выставить в конфиге DataTypeCompatibilty = 3.0
  • В триггере ON CONNECT выполнить SET BIND OF NUMERIC(38) TO LEGACY
  • После коннекта в приложении выполнить SET BIND OF NUMERIC(38) TO LEGACY или задать isc_dpb_set_bind при коннекте
  • Добавить в компоненты доступа поддержку NUMERIC(38,x)
Второй и третий не помогают. С четвертым проблема.
Первый пункт помог - приложение нормально работает. Буду смотреть дальше.

P.S. Когда примерный срок выхода RC1? Это я для себя, определить время на просмотр беты.
23 июн 20, 12:03    [22155858]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50347

Симонов Денис
И кстати это можно задать не только через SQL, но и через isc_dpb_set_bind.

Даже больше: это можно задать непосредственно в SQLDA при фетче.

Posted via ActualForum NNTP Server 1.5

23 июн 20, 12:27    [22155886]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
hvlad,

по ходу не до конца починили

create table t (
  i1 smallint,
  i2 integer,
  i3 bigint,
  i4 numeric(9, 2),
  i5 numeric(18, 2)
);


insert into t (i1, i2, i3, i4, i5)
values(1, 1, 1, 1.00, 1.00);

insert into t (i1, i2, i3, i4, i5)
values(2, 2, 2, 2.00, 2.00);

insert into t (i1, i2, i3, i4, i5)
values(3, 3, 3, 3.00, 3.00);

commit;


SQL> show version;
ISQL Version: WI-V4.0.0.2072 Firebird 4.0 Release Candidate 1
Server version:
Firebird/Windows/AMD/Intel/x64 (access method), version "WI-V4.0.0.2072 Firebird 4.0 Release Candidate 1"
Firebird/Windows/AMD/Intel/x64 (remote server), version "WI-V4.0.0.2072 Firebird 4.0 Release Candidate 1/tcp (station9)/
P16:C"
Firebird/Windows/AMD/Intel/x64 (remote interface), version "WI-V4.0.0.2072 Firebird 4.0 Release Candidate 1/tcp (station
9)/P16:C"
on disk structure version 13.0
SQL> set sqlda_display on;
SQL> select sum(i1) as n1, sum(i2) as n2, sum(i3) as n3,
CON> sum(i4) as n4, sum(i5) as n5, sum(1 - i1) as n6, sum(1 - i5) as n7
CON> from t;

INPUT message field count: 0

OUTPUT message field count: 7
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N1
: table: owner:
02: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N2
: table: owner:
03: sqltype: 32752 NUMERIC(38) Nullable scale: 0 subtype: 0 len: 16
: name: SUM alias: N3
: table: owner:
04: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N4
: table: owner:
05: sqltype: 32752 NUMERIC(38) Nullable scale: -2 subtype: 1 len: 16
: name: SUM alias: N5
: table: owner:
06: sqltype: 32752 NUMERIC(38) Nullable scale: 0 subtype: 0 len: 16
: name: SUM alias: N6
: table: owner:
07: sqltype: 32752 NUMERIC(38) Nullable scale: -2 subtype: 1 len: 16
: name: SUM alias: N7
: table: owner:

SQL> SET BIND OF NUMERIC(38) TO LEGACY;
SQL> select sum(i1) as n1, sum(i2) as n2, sum(i3) as n3,
CON> sum(i4) as n4, sum(i5) as n5, sum(1 - i1) as n6, sum(1 - i5) as n7
CON> from t;

INPUT message field count: 0

OUTPUT message field count: 7
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N1
: table: owner:
02: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N2
: table: owner:
03: sqltype: 32752 NUMERIC(38) Nullable scale: 0 subtype: 0 len: 16
: name: SUM alias: N3
: table: owner:
04: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N4
: table: owner:
05: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N5
: table: owner:
06: sqltype: 32752 NUMERIC(38) Nullable scale: 0 subtype: 0 len: 16
: name: SUM alias: N6
: table: owner:
07: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N7
: table: owner:


SQL> select cast(1 as numeric(18, 2)) * cast(1 as numeric(18, 2)) as n from rdb$database;

INPUT message field count: 0

OUTPUT message field count: 1
01: sqltype: 580 INT64 scale: -4 subtype: 1 len: 8
: name: MULTIPLY alias: N
: table: owner:
23 июн 20, 12:46    [22155900]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
hvlad
Member

Откуда:
Сообщений: 10955
Симонов Денис
по ходу не до конца починили
Что именно ? Про SET BIND - я знаю, решение скоро будет.
23 июн 20, 13:46    [22155961]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
hvlad,

да именно про него. Тут походу где subtype: 0 NUMERIC(38) в SET BIND не распознаётся, а отдельный INT128 вводить не стали.

hvlad
решение скоро будет


это обнадёживает
23 июн 20, 13:53    [22155971]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
CyberMax,

в последнем снапшоте всё пучком. INT128 сделали явным типом. Теперь можно выполнить следующий запрос и всё будет пучком.

set bind of int128 to legacy;


+ тест
SQL> set sqlda_display on;
SQL> select sum(i1) as n1, sum(i2) as n2, sum(i3) as n3,
CON> sum(i4) as n4, sum(i5) as n5, sum(1 - i1) as n6, sum(1 - i5) as n7
CON> from t;

INPUT message field count: 0

OUTPUT message field count: 7
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N1
: table: owner:
02: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N2
: table: owner:
03: sqltype: 32752 INT128 Nullable scale: 0 subtype: 0 len: 16
: name: SUM alias: N3
: table: owner:
04: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N4
: table: owner:
05: sqltype: 32752 INT128 Nullable scale: -2 subtype: 1 len: 16
: name: SUM alias: N5
: table: owner:
06: sqltype: 32752 INT128 Nullable scale: 0 subtype: 0 len: 16
: name: SUM alias: N6
: table: owner:
07: sqltype: 32752 INT128 Nullable scale: -2 subtype: 1 len: 16
: name: SUM alias: N7
: table: owner:

SQL> set bind of int128 to legacy;
SQL> select sum(i1) as n1, sum(i2) as n2, sum(i3) as n3,
CON> sum(i4) as n4, sum(i5) as n5, sum(1 - i1) as n6, sum(1 - i5) as n7
CON> from t;

INPUT message field count: 0

OUTPUT message field count: 7
01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N1
: table: owner:
02: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N2
: table: owner:
03: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N3
: table: owner:
04: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N4
: table: owner:
05: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N5
: table: owner:
06: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8
: name: SUM alias: N6
: table: owner:
07: sqltype: 580 INT64 Nullable scale: -2 subtype: 1 len: 8
: name: SUM alias: N7
: table: owner:

SQL>
25 июн 20, 12:58    [22157157]     Ответить | Цитировать Сообщить модератору
 Re: А что проект Devrace(FIBPlus) уже умер??  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1376
Симонов Денис,

Да, теперь BIND INT128 помог.
26 июн 20, 01:45    [22157549]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 23 24 25 26 [27]
Все форумы / Firebird, InterBase Ответить