Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

Как отличить тип колонки 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
3-1192783481
alsov
2007-10-19 12:44
2008.03.09
Поиск по blob полю


15-1201857706
Andryk
2008-02-01 12:21
2008.03.09
Кто все эти люди?! :)))))))))))) Сцылка


2-1202980099
bataniQ
2008-02-14 12:08
2008.03.09
Frame в Главной форме...


2-1202807561
SergeR
2008-02-12 12:12
2008.03.09
Получить текущее время комьпютера в сети


2-1203002402
webpauk
2008-02-14 18:20
2008.03.09
Handle