Привет всем.

Меня вот чего то так закалбасило, что
аж выворачивает :)

- Смотрю в базе NUMERIC(4,1)

- Он хранится в smallint. Максимальное
число цифр в числе 4. Масштаб числа
равен -1. По идее макс значение - "999.9"

- Пихаю в эту колонку "1234.5".
Пропихнулось без проблем.

Спрашиваете, чего меня колбасит?
Колбасит то, что сервер нихрена не
контролирует точность числа.

В результате, чтобы дотошный клиент
(типа MSSQL-я) не опупел от несоотвествия
точности указанной в описании колонки
и точности фактически полученного
значения из этой колонки, приходится
писать в описании нумерик-колонки
множества

на базе smallint - точность 5
на базе integer - точность 10
на базе int64 - точность 19

Вот эта последняя цифра (19) вылазит в
списке поддерживаемых типов как
максимальная точность NUMERIC-а. 18-ть
(исходя из вышеуказанных рассуждений)
же там не укажешь?

Но NUMERIC(19) хрена лысого создашь. Правда?

Я вот чего думаю. Вроде как charset UTF8
решает проблему с превышением
фактического числа символов по
отношению к указанному в метаданных.

Может это, того в отдаленном светлом
подумать о такой защите и для
нумериков?

Коваленко Дмитрий.
www.ibprovider.com

Ответить