Форум: "Базы";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
ВнизКак отличить тип колонки int от float Найти похожие ветки
← →
Kinder (2007-10-15 19:23) [0]База Данных Oracle10g, возвращается ref cursor из процедуры.
Все колонки типа NUMBER преобразуются во float - OK.
Но если у меня интовое поле, то оно всё равно преобразуется в float.Как можно отличить int от number. Досадно выводить дробную часть у целого, по определению, числа.
← →
Val © (2007-10-15 23:01) [1]"интовое поле" - не number
← →
Desdechado © (2007-10-16 10:59) [2]Многое зависит от используемых компонентов доступа.
Val © (15.10.07 23:01) [1]
Use NUMBER subtypes INTEGER, INT, and SMALLINT to declare integers with a maximum precision of 38 decimal digits.
← →
Val © (2007-10-16 11:10) [3]спасибо, я это уже читал. и это лишь подтверждает написанное мной.
← →
Desdechado © (2007-10-16 11:14) [4]Это всего лишь псевдонимы (для совместимости с ANSI datatypes) для NUMBER(38)
← →
Val © (2007-10-16 13:28) [5]Без дробной части. Я об этом:
When you specify numeric fields, it is a good idea to specify the precision and scale. This provides extra integrity checking on input.
← →
Kinder (2007-10-17 11:19) [6]Desdechado © "Многое зависит от используемых компонентов доступа" - это правда.Работаем через BDE и столкнулись с этой проблемой. Разве никто не не наступал на эти грабли?
to Val : Если в Oracle вы напишите NUMBER(1) , то для BDE - это float. precision вообще не возвращается. Scale - возвращется.
Если я в чём то не прав, просьба поправить.
← →
Desdechado © (2007-10-17 12:00) [7]БДЕ не сертифицирован для Оракла больше восьмерки.
Однако в некоторых случаях даже заточенными компонентами типа ODAC не получается добыть верный тип поля, т.к. сам Оракл его возвращает с ошибкой.
Например, в запросе X будет просто NUMBER, хотя в Y поле NUMBER(5)SELECT x FROM y WHERE x < 0
UNION ALL
SELECT 1 FROM y WHERE x > 0
PS у меня 9.2
← →
Kinder (2007-10-17 13:33) [8]не думаю Desdechado ©, что это ошибка, так как пытаться получить точный тип налету было бы не верно, грубо говоря это сказалось бы на производительности сильно.
Всем спасибо за участие.
ps:будем искать другие варианты.
← →
Reindeer Moss Eater © (2007-10-17 14:11) [9]надо включить в БДЕ "Enable Integers" тогда будет ftInteger
← →
Игорь Шевченко © (2007-10-17 14:33) [10]
> Как можно отличить int от number.
TFloatField.Precision не поможет ?
← →
Kinder (2007-10-18 17:42) [11]Reindeer Moss Eater © - 5 балов.
Интересно только нет ли камней при этом(я просто не понимаю как отличает в таком случае, но работает, пока, это факт).
← →
Reindeer Moss Eater © (2007-10-18 17:46) [12]Камень в основном один. Разный диапазон Integer в паскале и оракле.
То, что в оракле будет положительным целым, в паскале может оказаться отрицательным
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c