Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Вниз

Нужно создать поле хитрое ввода в таблице.   Найти похожие ветки 

 
Vovochka   (2002-09-16 11:00) [0]

Нужно ввести число в особом формате. Что-то типа "12.34.5". Для вывода я на
field зделал onGetText, но поле чиловое и OnSetText уже неподходит - недаёт
ставить вторую точку. Как быть? Просто сейчас сделано ввод и ввывод в одном
гриде и нехочется для изменения писать еще одну форму.


 
Sergey13   (2002-09-16 11:22) [1]

И чему равно число "12.34.5" в нормальном формате? ИМХО, это строка(текст) и хранить ее надо как текст, а уж интерпретировать - это как заблагорассудится.


 
oss   (2002-09-16 11:51) [2]

напиши яснее как ты потом работаешь с этим числом


 
Anatoly Podgoretsky   (2002-09-16 11:58) [3]

Новая отрасль математики, superfloat numbers


 
Vovochka   (2002-09-16 12:21) [4]

Нужно хранить UTC и широту и долготу.

UTC это отлие часового пояса от гринвича
(value<11.59)and(value>- 11.59) - По понятным причинам TIME неподходит. Хронится как одно поля типа Integer.
fix - cделал как Numeric(4,2)

Широта та-же жопа - вид с боку. Градусы(len 2).Минуты(len 2).Доли минут(len 1) - exp "с 45.30.8" - так она должна видется.
Хронится как одно поля типа Integer.
С градусами алкоголично. Хронится как одно поля типа Integer.


 
ЮЮ   (2002-09-17 03:36) [5]

Cм. DisplayFormat и EditFormat у TIntegerField


 
Sergey13   (2002-09-17 09:20) [6]

2Vovochka © (16.09.02 12:21)
>Градусы(len 2).Минуты(len 2).Доли минут(len 1) - exp "с >45.30.8" - так она должна видется.
>Хронится как одно поля типа Integer.
А почему именно одно поле. Может проще 3 поля. А при выводе соедини в одно - хоть в запросе, хоть в калк.поле - и храниться будет правильно и "видется" будет как надо.


 
ЮЮ   (2002-09-17 09:37) [7]

>Sergey13 © (17.09.02 09:20)
А сам ты поля типа DateTime используешь? Или в 7-ми отдельных полях хранишь? И соединяешь в одно в запросах?

>Хронится как одно поля типа Integer.
А может поступить как в случае с TDateTime? Хранить радианы в float, а отображать, как удобно пользователю


 
Sergey13   (2002-09-17 10:08) [8]

2ЮЮ © (17.09.02 09:37)
А ты считаешь что "Градусы(len 2).Минуты(len 2).Доли минут(len 1)" - это типа DateTime? Ню-Ню.


 
ЮЮ   (2002-09-17 11:32) [9]

А ты считаешь, что День(len2)Месяц(len2)Год(len2)Час(Len2)Мин(len2)Ceк(len2)mc(len3) - это семь полей в таблице? И тебе Ню-Ню :-)


 
Johnmen   (2002-09-17 11:36) [10]

Если вообразить, что Градусы - Часы, то очень даже реально хранить значение величины угла в поле TIMESTAMP или TIME (в зависимости от диалекта)


 
Sergey13   (2002-09-17 11:56) [11]

Ну и попробуйте поработать с "89.59.16" как со временем.
Желаю удачи.


 
ЮЮ   (2002-09-17 12:02) [12]

89.59.16 -> в радианы -> float
TDateTime === float
Именно это имел в виду, когда говорил "поступить как в случае с TDateTime"


 
Johnmen   (2002-09-17 12:15) [13]

>Sergey13 © (17.09.02 11:56)
>Ну и попробуйте поработать с "89.59.16" как со временем.
>Желаю удачи.

Пардон, а где это такое предлагалось ? Автор именно и спрашивает, как лучше ему хранить значение угла...




 
REA   (2002-09-17 12:15) [14]

Можно попробовать сделать вычисляемое поле и работать через него - не уверен что получится. А прямо в строке почему бы не хранить? Неудобно?


 
Sergey13   (2002-09-18 11:40) [15]

2ЮЮ © & Johnmen ©
Да не спорю я, что можно. Я спорю за то, что нужно ли? Аналогия с TDateTime(ЮЮ, не надо меня обвинять в идиотизме, TDateTime я храню как TDateTime, а не в 7 полях) не удачна потому, что этот тип понимают обе стороны(база и прога), а в случае с градусами нужно ПОСТОЯННО переводить из одного в другое САМОСТОЯТЕЛЬНО ( кстати почему именно в радианы, достаточно просто привести к нормальному формату типа 15.30.00 = 15.5, все равно это надо делать для перевода в радианы). При этом все равно придется разбивать экранный вывод на 3 целых числа - не радианы же юзеру вводить/редактировать. Ну и на фига козе баян, зачем постоянно переводить если автор вопроса хочет работать именно со своей формой этого "числа"? Единственный плюс от этого запись меньше на 16 бит (3 smallint- 1 float).
В общем я остаюсь при своем мнении. Хранить "80.20.30" лучше или строкой или (в случае активной обработки этих данных) в 3 полях.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.029 c
1-20979
const-od
2002-09-26 15:02
2002.10.07
OLE + MS Excell


3-20909
@andrew
2002-09-16 18:07
2002.10.07
ПРИВЕТ ВСЕМ!!! Очень нужен совет. Стратегический.


4-21332
delphiguru
2002-08-21 12:54
2002.10.07
Где найти литературу или обучалку по WinAPI?


14-21278
Бармен
2002-09-10 20:43
2002.10.07
А я тут в Ялте оттягиваюсь!!!!


1-21109
VID
2002-09-24 16:10
2002.10.07
Washington Post: Приложение тормозит при передачи большого текста





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