Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.04 c
2-1202721542
newbie2
2008-02-11 12:19
2008.03.09
Как сохранить integer размером больше 2-байт в xls?


15-1201521955
Карелин Артем
2008-01-28 15:05
2008.03.09
Какие средства обработки очередей существуют?


8-1176303759
ПАВЕЛ123
2007-04-11 19:02
2008.03.09
как найти цвет изображение в любой его точке


2-1202810874
Аян
2008-02-12 13:07
2008.03.09
нужна подсказка


15-1201861717
barakuda
2008-02-01 13:28
2008.03.09
меню с большими иконками 32*32...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский