Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.05.2010, 17:34
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию Грабли с типом TDate

В общем решил поделится историей, как я наступил на грабли.
Есть у меня программа написанная в Дельфи которая подключается к Акцесовской БД. Вплоть до 01.05.2010 года программа работала безупречно, а вот первого мая она начала чудить. В программе активно используются операции сравнения дат. Сравнивается дата возвращаемая функцией Date с полем из БД аналогичного типа TDate. Вот тут, как оказалось и можно закопать злую собаку. Итак просматриваю код программы в отладчике и отладчик мне выдает 01.05.2010 <> 01.05.2010.
Не равно и все, хоть ты тресни. После долгих танцев с бубном выявилась удивительная вещь, оказывается несмотря на то, что Дельфи заявляет что тип TDate используется для хранения даты, на самом деле он хранит еще и время, но при этом отказывается показывать это самое время в числе. Если вам Дельфи говорит, что значение типа TDate = 14566, то это не так, на самом деле там может быть 14566,11 или 14566,67. И естественно сравнение этих чисел не даст равенства. Дальнейшие изыскания показали, что я в программе случайно записывал данные в поле TDate как TDateTime и в итоге благополучно наступил на грабли.
Вывод - осторожно обращайтесь с типом TDate - проверить, что в переменную этого типа на самом деле записывается, увидеть в отладчике не получится.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 25.05.2010 в 17:45.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter