Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2008, 03:47   #1
photozaz
Пользователь
 
Регистрация: 05.04.2008
Сообщений: 66
По умолчанию тип DateTime

А подскажите, как проверить относится ли данный текст к типу DateTime, если да, то (...) если нет, то (...). очень надо, подскажите! потому что когда присваиваю например вот так

Код:
var d: TDateTime;
//...........
d:=  strtodatetime( table1.Fields.FieldByName('Дата рождения').AsString);
то если данное поле не соответсвует формату DateTime, то выскакивает неприятная ошибка и ее надо отсеять... поэтому я думаю, что перед тем как присваивать надо проверить подойдет ли формат или нет. ну это моя идея, может есть что-то получше??
photozaz вне форума Ответить с цитированием
Старый 12.10.2008, 04:26   #2
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Код:
try 
d:=  strtodatetime( table1.Fields.FieldByName('Дата рождения').AsString);
except on неприятная ошибка 
 do
 действие после ошибки
 end;
Viteef вне форума Ответить с цитированием
Старый 12.10.2008, 07:54   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Функция
TryStrToDate
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 12.10.2008, 09:38   #4
photozaz
Пользователь
 
Регистрация: 05.04.2008
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Viteef Посмотреть сообщение
Код:
try 
d:=  strtodatetime( table1.Fields.FieldByName('Дата рождения').AsString);
except on неприятная ошибка 
 do
 действие после ошибки
 end;
я так пробывал, использовал такой код ::
Код:
try
  d:=  strtodatetime( table1.Fields.FieldByName('Дата рождения').AsString);
except
  on EIntError do
    MessageDlg('Ошибка целочисленной операции',
                mtWarning, [mbOk], 0);
else ShowMessage('Неверный формат даты ' );
      exit;

end;
но все равно сразу вылетает ошибка делфи, а потом только срабатывает этот код и высвечивается сообщение ('Неверный формат даты ' ).

использовал и TryStrToDateTime но все равно вылетает ошибка

Код:
if TryStrToDateTime(table1.Fields.FieldByName('Дата рождения').AsString, d)
then

  begin
    Table1.Edit;
    table1.Fields.FieldByName('Дата рождения').AsString:=datetimetostr(d);// на этом этапе, если формат не верный вылетает ошибка
photozaz вне форума Ответить с цитированием
Старый 12.10.2008, 13:56   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
сразу вылетает ошибка делфи, а потом только срабатывает этот код
Это вполне естественно для режима отладки под Дельфи.
Запустите ваш экзешник не из-под Дельфи, а напрямую, и "ошибка делфи" вылетать не будет.
mihali4 вне форума Ответить с цитированием
Старый 12.10.2008, 20:41   #6
photozaz
Пользователь
 
Регистрация: 05.04.2008
Сообщений: 66
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Это вполне естественно для режима отладки под Дельфи.
Запустите ваш экзешник не из-под Дельфи, а напрямую, и "ошибка делфи" вылетать не будет.
Большое спасибо!! проверил, действительно все работает!!
photozaz вне форума Ответить с цитированием
Старый 12.10.2008, 21:00   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

А чтобы подобное не повторялось заходим в > menu > tools > debugger options > language exceptions > и убираем галочку с "Stop on Delphi exceptions" (это для delphi 7, для других не помню, ..нет под рукой)
_SERGEYX_ вне форума Ответить с цитированием
Старый 12.10.2008, 21:02   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вот это зря - на этапе отладки без этого будет столько непонятных зависаний...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Агрегатная функция SUM для DateTime _SERGEYX_ БД в Delphi 6 09.02.2009 12:40
Hex в DateTime и обратно yurban Общие вопросы Delphi 1 30.08.2008 09:06
DATETime XPAiN БД в Delphi 12 15.11.2007 13:37
данные о видеосистеме: тип видеоадаптера, тип монитора, режим монитора: разрешение, частота обновления WaxeP Win Api 9 15.04.2007 18:12
тип строка Jallexe Общие вопросы Delphi 8 14.11.2006 17:25