SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » INT128 FIB
INT128 FIB [сообщение #4041] Fri, 12 January 2024 13:28 Переход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
Кто-нибудь пытался мапить int128 на varchar в фибах?

с чего начинать?
Re: INT128 FIB [сообщение #4043 является ответом на сообщение #4041] Fri, 12 January 2024 16:33 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
с поиска функций кодирования-декодирования int128 <==> string
Re: INT128 FIB [сообщение #4045 является ответом на сообщение #4041] Fri, 12 January 2024 19:03 Переход к предыдущему сообщениюПереход к следующему сообщению
 в настоящее время не в онлайне 
Сообщений: 197
Зарегистрирован: September 2022
Senior Member
DataTypeCompatibility = 3.0
И всё.
Re: INT128 FIB [сообщение #4046 является ответом на сообщение #4045] Fri, 12 January 2024 22:48 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
в 3.0 int128 уже был в count
Re: INT128 FIB [сообщение #4047 является ответом на сообщение #4043] Fri, 12 January 2024 22:49 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
МП писал(а) Fri, 12 January 2024 16:33
с поиска функций кодирования-декодирования int128 <==> string
это-то найдем

как TIntegerField в формах корректно заставить работать пусть и через varchar
Re: INT128 FIB [сообщение #4048 является ответом на сообщение #4046] Fri, 12 January 2024 23:02 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
pastor писал(а) Fri, 12 January 2024 22:48
в 3.0 int128 уже был в count
все таки с четверки
Re: INT128 FIB [сообщение #4050 является ответом на сообщение #4045] Sat, 13 January 2024 01:40 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 412
Зарегистрирован: August 2022
Senior Member
МорскойДесант писал(а) Fri, 12 January 2024 17:03
DataTypeCompatibility = 3.0
И всё.
Обязательно по площадям бить? Точечный SET BIND кто-то запретил?..
Re: INT128 FIB [сообщение #4055 является ответом на сообщение #4047] Mon, 15 January 2024 12:01 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
pastor писал(а) Fri, 12 January 2024 22:49
МП писал(а) Fri, 12 January 2024 16:33
с поиска функций кодирования-декодирования int128 <==> string
это-то найдем

как TIntegerField в формах корректно заставить работать пусть и через varchar
буду говорить за IBX, поскольку FIB нету под рукой.
1. надо модифицировать геттеры/сеттеры TIXSQLVAR - GetAsString/SetAsString
2. модифицировать методы TIBCustomDataSet
       InternalInitFieldDefs <-- именно тут мапится
       FetchCurrentRecordToBuffer
       SetInternalSQLParams 
в общем, повозиться придётся порядочно
Re: INT128 FIB [сообщение #4057 является ответом на сообщение #4055] Mon, 15 January 2024 12:54 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
Спасибище!

будем копать.
Re: INT128 FIB [сообщение #4058 является ответом на сообщение #4057] Mon, 15 January 2024 13:50 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
но я бы всё таки мапил на TFMTBCDField, а не на TStringField
Re: INT128 FIB [сообщение #4163 является ответом на сообщение #4058] Mon, 22 January 2024 21:13 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 79
Зарегистрирован: October 2023
Member
Может проще тупо обрезать до 64бит? И бросать исключение если не влезает.
Re: INT128 FIB [сообщение #4165 является ответом на сообщение #4163] Mon, 22 January 2024 22:43 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Надо делать нормально, а не через жопу. Если достаточно 64бит, то можно тупо сделать bind на bigint. Это по сути работает как для DataTypeCompability = 3.0.
Re: INT128 FIB [сообщение #4169 является ответом на сообщение #4165] Tue, 23 January 2024 08:02 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
в общем-то норм решение обрезать
мне не шибко нужны числа, превышающие число атомов во вселенной

прикладники-с
Re: INT128 FIB [сообщение #4175 является ответом на сообщение #4169] Tue, 23 January 2024 13:24 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
pastor писал(а) Tue, 23 January 2024 08:02
в общем-то норм решение обрезать
мне не шибко нужны числа, превышающие число атомов во вселенной

прикладники-с
я согласен с Денисом, в том, что нафига эта сова натянутая на глобус, если есть штатный bind на bigint.

но если таки решил резать не дожидаясь перетонитов, то работы там на полчаса.
найди где упоминается SQL_INT64 и по аналогии зафигач для SQL_INT128 (с обрезкой до 8 байт).

Re: INT128 FIB [сообщение #4178 является ответом на сообщение #4165] Tue, 23 January 2024 14:25 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
sim_84 писал(а) Mon, 22 January 2024 22:43
Надо делать нормально, а не через жопу. Если достаточно 64бит, то можно тупо сделать bind на bigint. Это по сути работает как для DataTypeCompability = 3.0.
прочитал про bind
много думал
Re: INT128 FIB [сообщение #4183 является ответом на сообщение #4165] Tue, 23 January 2024 16:34 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 79
Зарегистрирован: October 2023
Member
sim_84 писал(а) Mon, 22 January 2024 22:43
Надо делать нормально, а не через жопу. Если достаточно 64бит, то можно тупо сделать bind на bigint. Это по сути работает как для DataTypeCompability = 3.0.
Не всегда это удобно. Например если ПО тиражируемое и сервер чужой. Логичнее было бы выставлять этот параметр в параметрах подключения к БД.
Re: INT128 FIB [сообщение #4184 является ответом на сообщение #4183] Tue, 23 January 2024 16:41 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
avp писал(а) Tue, 23 January 2024 16:34
sim_84 писал(а) Mon, 22 January 2024 22:43
Надо делать нормально, а не через жопу. Если достаточно 64бит, то можно тупо сделать bind на bigint. Это по сути работает как для DataTypeCompability = 3.0.
Не всегда это удобно. Например если ПО тиражируемое и сервер чужой. Логичнее было бы выставлять этот параметр в параметрах подключения к БД.
не только мне нужно прочитать про bind
Re: INT128 FIB [сообщение #4185 является ответом на сообщение #4184] Tue, 23 January 2024 17:13 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 79
Зарегистрирован: October 2023
Member
pastor писал(а) Tue, 23 January 2024 16:41

не только мне нужно прочитать про bind
Как сервер определит что с ним работает "old client software"?
Re: INT128 FIB [сообщение #4186 является ответом на сообщение #4185] Tue, 23 January 2024 17:15 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
avp писал(а) Tue, 23 January 2024 17:13
pastor писал(а) Tue, 23 January 2024 16:41

не только мне нужно прочитать про bind
Как сервер определит что с ним работает "old client software"?
написано в доке
в разделе bind

есть толковая дока от Кузьменко

https:// www.ibase.ru/files/articles/firebird4/fb4migrationguide_rus. html

[Обновления: Tue, 23 January 2024 17:26]

Известить модератора

Re: INT128 FIB [сообщение #4196 является ответом на сообщение #4186] Tue, 23 January 2024 18:53 Переход к предыдущему сообщениюПереход к следующему сообщению
avp в настоящее время не в онлайне  avp
Сообщений: 79
Зарегистрирован: October 2023
Member
Т.е. получается, что если сразу после коннекта вызвать
execute block as
begin
  set bind of int128 to legacy;
  set bind of decfloat to legacy;
end
То проблем не будет?
Re: INT128 FIB [сообщение #4198 является ответом на сообщение #4196] Wed, 24 January 2024 08:02 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
avp писал(а) Tue, 23 January 2024 18:53
Т.е. получается, что если сразу после коннекта вызвать
execute block as
begin
  set bind of int128 to legacy;
  set bind of decfloat to legacy;
end
То проблем не будет?
das experiment
Re: INT128 FIB [сообщение #4199 является ответом на сообщение #4198] Wed, 24 January 2024 09:39 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Проблем не будет, это прекрасно работает. А если не хочется лишний запрос слать, то можно воспользоваться isc_dpb_set_bind

Цитата:
Начальные правила привязки соединения настраиваются через DPB путем предоставления списка опций <type_from> TO <type_to>, разделенных точкой с запятой, в качестве строкового значения isc_dpb_set_bind.

[Обновления: Wed, 24 January 2024 09:43]

Известить модератора

Re: INT128 FIB [сообщение #4214 является ответом на сообщение #4199] Wed, 24 January 2024 15:50 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 412
Зарегистрирован: August 2022
Senior Member
sim_84 писал(а) Wed, 24 January 2024 07:39
Проблем не будет, это прекрасно работает. А если не хочется лишний запрос слать, то можно воспользоваться isc_dpb_set_bind
...что потребует допиливания FIB. А на это, как мы видим, никто не способен.
Re: INT128 FIB [сообщение #4554 является ответом на сообщение #4041] Tue, 27 February 2024 15:37 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
Показать скрытый текст
или

Показать скрытый текст

[Обновления: Tue, 27 February 2024 15:38]

Известить модератора

Re: INT128 FIB [сообщение #4555 является ответом на сообщение #4554] Tue, 27 February 2024 16:50 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Откуда уверенность, что FIBPlus из DBParams (строкового представления) найдёт реальный isc_dpb_set_bind и запишет в него значение твоего BIND?
Без модификации самого FIBPlus этот код не будет работать (если только его уже не модифицировали)
Re: INT128 FIB [сообщение #4556 является ответом на сообщение #4555] Tue, 27 February 2024 17:00 Переход к предыдущему сообщениюПереход к следующему сообщению
pastor в настоящее время в онлайне  pastor
Сообщений: 83
Зарегистрирован: June 2022
Географическое положение: Калуга
Member
sim_84 писал(а) Tue, 27 February 2024 16:50
Откуда уверенность, что FIBPlus из DBParams (строкового представления) найдёт реальный isc_dpb_set_bind и запишет в него значение твоего BIND?
Без модификации самого FIBPlus этот код не будет работать (если только его уже не модифицировали)
из успешно пройденной проверки

PS пару строк добавил в ibase.pas  и fib.pas
Re: INT128 FIB [сообщение #4697 является ответом на сообщение #4556] Tue, 19 March 2024 11:48 Переход к предыдущему сообщению
Anton в настоящее время не в онлайне  Anton
Сообщений: 1
Зарегистрирован: December 2022
Junior Member
Я сделал так и работает

CREATE OR ALTER TRIGGER OC_DATABASE
ACTIVE ON CONNECT POSITION 0
as
begin
 set bind of decimal to legacy;
 set bind of numeric to legacy;
 set bind of int128 to legacy;
 set bind of time zone to legacy;
end
Предыдущая тема: ANN: FIREBIRD CONF 2024: техническая конференция для разработчиков и администраторов
Следующая тема: Новые возможности Firebird 5.0: Полная версия
Переход к форуму:
  


Текущее время: Wed Dec 04 22:00:32 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01494 секунд