Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прочитать из поля и запихать в параметр число Int64 (Oracle)? [MySQL]


Страницы:   1 2

ANB ©   (2005-06-08 21:08:00) 

В базе возможны целые числа, которые не лезут в Integer и я их пытаюсь хранить в Int64. Как с ними грамотно работать ? Когда у меня вылезла бага, некогда было разбираться и я сделал все через AsString. Но это, имхо, некошерно.


<Lelik>   (2005-06-16 10:36:00) [1]

Удалено модератором
Примечание: Тебе кто то запретил задавать вопросы в форуме?


Anatoly Podgoretsky   (2005-06-10 07:39:00) [2]

ANB ©   (10.06.05 00:47) [30]
При 1000 записях в день 12.0 хватит на 2 739 726 лет


ANB   (2005-06-10 01:07:00) [3]

Обалдет, и правда 38 цифр влезло. Это я и в Int64 не запихаю. Правда смотреть можно только в виде to_char


ANB   (2005-06-10 01:02:00) [4]


> Сравни с точностью паскалевского типа Double
- посмотрел на дабл - 15 значащих цифр.


> У Оракла в типе NUMBER 38(тридцать восемь!) значащих цифр.
- я тоадом, ручками пытался число запихать поболее, с 15 - цифры началось округление. Хотя, это может быть глюк тоада.


Reindeer Moss Eater   (2005-06-10 00:56:00) [5]

- ну да. Снять с грида и отправить параметром в полезную функцию. Я их уже все на int64 повесил.

Используй Double.
И все.
Ничего изобретать не надо.


Reindeer Moss Eater   (2005-06-10 00:55:00) [6]

У Оракла в типе NUMBER 38(тридцать восемь!) значащих цифр.
Сравни с точностью паскалевского типа Double и все сразу станет ясно. (Это про корректность операций сравнения)
Или ты хочешь сказать, что значения кодов и в диапазон Double у тебя не влезает?
Ты часом не атомы во вселенной решил пересчитать?
:)


ANB   (2005-06-10 00:54:00) [7]


> Тебе в паскале-то зачем этот id?
> Заселектить в одном месте и использовать в качестве параметра
> запроса в другом?
- ну да. Снять с грида и отправить параметром в полезную функцию. Я их уже все на int64 повесил.


ANB   (2005-06-10 00:52:00) [8]

В дабл только 15 цифр влезает, дальше округление начнется, а в Int64 - 19. Хотя, экспериментально, я в number только 14 цифр смог запихать, дальше отрезание началось


Reindeer Moss Eater   (2005-06-10 00:48:00) [9]

Тебе в паскале-то зачем этот id?
Заселектить в одном месте и использовать в качестве параметра запроса в другом?
Тогда забудь про ENABLE INTEGERS и работай с TFloatField.
Заодно навсегда забудешь про нехватку диапазона Integer.


ANB   (2005-06-10 00:47:00) [10]

Млин, я в новом проекте уже везде Int64 напихал. Хотя тут маловероятно переполнение - больше 1000 записей в день я не генерю . . . И то только в одной таблице. На крайняк - придется только для нее изгальнутся.


Reindeer Moss Eater   (2005-06-10 00:44:00) [11]

Ну тогда извращайся с квадратными колесами.
А способ-то с double - верный.


ANB   (2005-06-10 00:40:00) [12]


> Работай с Double и будет счастье.
- ID с типом Double - как то несерьезно. :(((


ANB   (2005-06-10 00:39:00) [13]


> Anatoly Podgoretsky ©   (09.06.05 23:23) [25]
- это уже не у меня. Но примерно :
В базе около 500 тысяч человек. На каждого приходится в месяц около 20 записей в связанных таблицах, то есть около 10 миллионов новых записей в самой детализованной таблице в месяц.


Reindeer Moss Eater   (2005-06-10 00:02:00) [14]

number(12,0)  это не предел.
Просто для примера приведено.
Работай с Double и будет счастье.


Anatoly Podgoretsky   (2005-06-09 23:23:00) [15]

ANB ©   (09.06.05 22:35) [23]
Сколькно новых записей в сутки?


ANB   (2005-06-09 22:36:00) [16]

Проблема срочно не стоит. Раз вылезла на промышленной конвертации, но сроки горели и я залатал дырку через StrToInt(AsString). Все отработало. Но теперь интересно - неужели только так по дубовому ?


ANB   (2005-06-09 22:35:00) [17]

Number(12,0) - маловато будет.


Reindeer Moss Eater   (2005-06-09 22:08:00) [18]

Используй Double. Это проще.
Точности у типа number Оракла хватит для того что бы корректно сравнивать в Delphi две AsFloat величины содержащих значения полей (скажем number(12,0))


Anatoly Podgoretsky   (2005-06-09 22:00:00) [19]

Ну и как видишь это не LargeInt для Дельфи


ANB   (2005-06-09 21:15:00) [20]

Это как ? Number без параметров я для ID юзаю, чтобы не кончились раньше времени. Получается, что они кончаться раньше, чем я думал ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо