Главная страница
    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.042 c
15-1202075537
mvp
2008-02-04 00:52
2008.03.09
PHP + Flash + Video


15-1201847127
MTDeveloper
2008-02-01 09:25
2008.03.09
Проблема при вставке текста в Richedit


2-1202988963
Photo33
2008-02-14 14:36
2008.03.09
2 bmp в один


2-1202890066
arreke
2008-02-13 11:07
2008.03.09
Удалить самого себя


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