Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBExpert Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

30.09.2019 13:50, IBExpert пишет:
> Нет, не привожу. toString/fromString интерфейсные использую.

а сортировать как?

Posted via ActualForum NNTP Server 1.5

30 сен 19, 13:56    [21982690]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2794
Мимопроходящий
а сортировать как?


Если не уговорю Влада на добавление дополнительных функций в интерфейс, то придется что-то снаружи прикручивать.
А пока сортировки нет.
30 сен 19, 14:40    [21982750]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10079
Мимопроходящий,

дельфийский BCD не вмещает ни DECFLOAT(34), ни NUMERIC(38, x).
Там вроде есть ещё какая-то приблуда типа TFMTBCDField, но не знаю поддерживаются ли они в старых Delphi
30 сен 19, 14:43    [21982755]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

30.09.2019 14:43, Симонов Денис пишет:
> дельфийский BCD не вмещает ни DECFLOAT(34), ни NUMERIC(38, x).
> Там вроде есть ещё какая-то приблуда типа TFMTBCDField, но не знаю поддерживаются ли они в старых Delphi

type
  TBCD  = packed record
    Precision: Byte;
    SignSpecialPlaces: Byte;
    Fraction: packed array [0..31] of Byte;
  end;
32 байта, в каждом байте 2 десятичных знака (00..99).
итого - 64 значащих.

Posted via ActualForum NNTP Server 1.5

30 сен 19, 15:16    [21982821]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10079
хм у DecFloat34 есть toBcd и fromBcd. По идее можно было бы для Int128 сделать

interface DecFloat34 : Versioned
{
	const uint BCD_SIZE = 34;
	const uint STRING_SIZE = 43;	// includes terminating \0
	void toBcd(const FB_DEC34* from, int* sign, uchar* bcd, int* exp);
	void toString(Status status, const FB_DEC34* from, uint bufferLength, string buffer);
	void fromBcd(int sign, const uchar* bcd, int exp, FB_DEC34* to);
	void fromString(Status status, const string from, FB_DEC34* to);
}


вот только я не уверен что оно с delphi TBcd совместимо будет
30 сен 19, 18:44    [21983123]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

30.09.2019 18:44, Симонов Денис пишет:
> вот только я не уверен что оно с delphi TBcd совместимо будет

кто с кем несовместимо будет?

Posted via ActualForum NNTP Server 1.5

30 сен 19, 18:48    [21983128]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10079
Мимопроходящий,

я bcd в delphi не трогал. Но судя по тому что пишут в интернетах там какая-то вакханалия.

Вопрос можно ли использовать toBcd хоть как-то для TBcd?
30 сен 19, 18:53    [21983133]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

30.09.2019 18:53, Симонов Денис пишет:
> я bcd в delphi не трогал. Но судя по тому что пишут в интернетах там какая-то вакханалия.

в интернетах правды нет.

> Вопрос можно ли использовать toBcd хоть как-то для TBcd?

вопрос в том, на какую структуру оно опирается.
судя по декларации которую ты привёл, это не FMTBcd из C++

Posted via ActualForum NNTP Server 1.5

30 сен 19, 18:58    [21983140]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Gorynich
Member

Откуда:
Сообщений: 106
select sum(0.0)
from rdb$database
4 окт 19, 15:07    [21986820]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

04.10.2019 15:07, Gorynich пишет:
> select sum(0.0)
> from rdb$database

- шо это было?
- антоновка...
(С)

Posted via ActualForum NNTP Server 1.5

4 окт 19, 15:11    [21986823]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Gorynich
Member

Откуда:
Сообщений: 106
Сервер - fb 4.0.0.1621-0_x64
IBE - 2019.9.29.1

Результат запроса
select sum(0.0)
from rdb$database

имеет тип NUMERIC(38,1), но представляется "как текст", с неправильным десятичным разделителем.
Можно разделитель изменить?
4 окт 19, 15:14    [21986828]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30556

04.10.2019 15:14, Gorynich пишет:
> имеет тип NUMERIC(38,1)

вопрос из зала: оно что же, теперь все агрегаты к NUMERIC(38, x)
приводить будет?

Posted via ActualForum NNTP Server 1.5

4 окт 19, 15:49    [21986866]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Симонов Денис
Member

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

а чем он неправильный? Точка как точка или ты запятую желаешь?
4 окт 19, 18:27    [21987047]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Gorynich
Member

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

а чем он неправильный? Точка как точка или ты запятую желаешь?


Хочу мышью открывать окна, чтобы decimal delimiter был одним и тем же (что и определен системно), для разных столбцов одного запроса
select sum(0.0), 0.0
from rdb$database


В моем же случае результат
0.0   0,0

SUM NUMERIC(38,1),
CONSTANT NUMERIC(18,1)
4 окт 19, 18:36    [21987056]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
mvb
Member

Откуда: Казань
Сообщений: 1399
Db Comparer ругается, если в процедуре расширенный вариант HASH:
insert into USERS (NAME, PWD_HASH)
      values ('Администратор', hash('bla-bla-bla' using MD5))
      returning ID into :id;


DBC
==== Error ==== : Procedure SP_SYS$INIT_DB: Missing: <)> (USING)
6 окт 19, 20:03    [21987731]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2794
mvb
Db Comparer ругается, если в процедуре расширенный вариант HASH:


Компарер еще почти ничего не знает про синтаксис четверки.
7 окт 19, 08:27    [21987910]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2794
Gorynich
Можно разделитель изменить?


Можно, наверное.
7 окт 19, 08:28    [21987911]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10079
Мимопроходящий
04.10.2019 15:14, Gorynich пишет:
> имеет тип NUMERIC(38,1)

вопрос из зала: оно что же, теперь все агрегаты к NUMERIC(38, x)
приводить будет?


у тебя есть другие предложения? Когда считаем SUM или AVG трудно угадать сколько там реально записей будет в выборки, поэтому чтобы случайно не получить переполнение выдаём наиболее вместимый тип в prepare. Если это может поломать совместимость со старым клиентом, то просто делай BIND INT128 на BIGINT.
7 окт 19, 10:34    [21987983]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2794
В свежей версии сделана сортировка в гриде по DECFLOAT и NUMERIC(38,x) полям, агрегаты там же (пока только по NUMERIC(38,x)), частичная поддержка DECFLOAT и NUMERIC(38,x) в отладчике.
18 окт 19, 03:09    [21997009]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
Gorynich
Member

Откуда:
Сообщений: 106
IBExpert
Gorynich
Можно разделитель изменить?


Можно, наверное.


В предыдущей версии (или мне показалось?) десятичный разделитель был изменен на системный. Но в 2019.10.18.1 вернулась точка вместо зяпятой (для моих региональных настроек системы).
18 окт 19, 13:47    [21997413]     Ответить | Цитировать Сообщить модератору
 Re: Firebird 4. Про него пока пишите сюда.  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 2794
Gorynich
В предыдущей версии (или мне показалось?) десятичный разделитель был изменен на системный. Но в 2019.10.18.1 вернулась точка вместо зяпятой (для моих региональных настроек системы).


Бажок, исправлю.
19 окт 19, 05:52    [21997861]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / IBExpert Ответить