|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
Здравствуйте, Подскажите, пожалуйста, как сделать так, чтобы при вводе некорректного значения даты в функции dw.SetFilter выдавалось не сообщение "Expression is not valid", а выпадал мой MessageBox. Можно ли поймать через TRY...CATCH? Если да, то какое исключение ловить? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2008, 21:13 |
|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
через TRY...CATCH нельзя А зачем вгонять некорректное значение даты в dw.SetFilter ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2008, 21:24 |
|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
Ну вгонять незачем. Просто как-то надо проверить корректность даты, поэтому думал, что через TRY и CATCH получится. Если как-то можно проверить по-другому буду рад узнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2008, 21:29 |
|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
grimjawНу вгонять незачем. Просто как-то надо проверить корректность даты, поэтому думал, что через TRY и CATCH получится. Если как-то можно проверить по-другому буду рад узнать. Date(string)<>'1900-01-01' ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2008, 21:33 |
|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
to ЗоринАндрей Не совсем понял: преобразование к date строки с некорректной датой дает 1900-01-01? Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2008, 21:37 |
|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
хм...проверил - действительно некорректная дата преобразуется к 1900-01-01. Но интересно, получается так, что вполне нормальную дату 1900-01-01, введенную без ошибок, такая проверка обработает как некорректную. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2008, 22:02 |
|
Проверка даты на корректность
|
|||
---|---|---|---|
#18+
Для общего развития - есть такое: Код: plaintext 1.
А касательно конкретно вашего случая: правильно - сначала получить дату в виде типа Date. И проверку валидности строкового представления даты, введенной юзером, надо делать уже на этом этапе. А в фильтр DW передавать дату преобразованную в литерал даты в формате yyyy-mm-dd: Код: plaintext
Парсинг из строки в Date в общем случае встроенными в PB средствами невозможен. Ф-я Date(String) воспринимает в качестве даты только форматы "yyyy-mm-dd" и текущий региональный формат в Windows. Если же требуется другой формат (например американскую дату в русской винде), то надо писать свой парсер даты. Проверка валидности строки с датой в т.ч. и для даты 1900-01-01 при использовании встроенной ф-и Date: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2008, 02:35 |
|
|
start [/forum/topic.php?fid=15&fpage=38&tid=1336438]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 141ms |
0 / 0 |