Главная страница
    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.049 c
2-1202826052
Ega23
2008-02-12 17:20
2008.03.09
Прочитать екселевский файл, открытый из Excel


10-1143627195
alk
2006-03-29 14:13
2008.03.09
Обмен параметрами между клиентом и сервером


3-1192802734
Vendict
2007-10-19 18:05
2008.03.09
создание DNS для Oracle


2-1202608791
bagos
2008-02-10 04:59
2008.03.09
глюк какойто или сервак рубит мой коннект


2-1202553943
fics
2008-02-09 13:45
2008.03.09
Компонент "ЛИНИЯ"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский