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

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

TDateTime type и Null [D7]


chir ©   (2005-01-13 17:34:00) 

Объект (похожий на DateTimePicker) возвращает дату типа TDateTime.
Как проверить ввел ли пользователь дату или нет? Происходит запись в базу, куда нельзя записывать пустую дату.


chir   (2005-01-13 18:39:00) [1]

С этим разобрался... надо было использовать не .Date и не .Text,
а .EditValue, который возвращал Null.

спасибо всем


Соловьев   (2005-01-13 18:24:00) [2]

Происходит запись в базу, куда нельзя записывать пустую дату.

Можно еще ж ловить onPostError - там и проверяй, что за шибка.


sniknik   (2005-01-13 18:21:00) [3]

chir   (13.01.05 18:10) [6]
мне бы ваши проблемы... эх...

т.е. ввести пустое и посмотреть в отладчике что вернуло проблема?
и вообще если настолько неизвестный компонент, стоит ли его использовать?


chir   (2005-01-13 18:10:00) [4]

> Johnmen
не знаю какое. если бы знал, сделал бы проверку... эх...


Johnmen   (2005-01-13 17:58:00) [5]

>Объект (похожий на DateTimePicker) возвращает дату типа TDateTime.

Какое значение он зазвращает, если дата не указана?


Соловьев   (2005-01-13 17:55:00) [6]

взять из EhLib редактор даты


Ega23   (2005-01-13 17:52:00) [7]


procedure TFProfs.btnOkClick(Sender: TObject);
var
ss:String;
ProfID:Integer;

begin

if not FoolProtection then Exit;

...... Update to dataBase
end;

function TFProfs.FoolProtection: Boolean;
var
ss:string;
Code:Integer;

begin

ss:=eProfNam.Text;
if not CheckOnQuotes(ss,Code) then
 begin
  if eProfNam.CanFocus then eProfNam.SetFocus;
//   PassMessage(Handle,'Символ '+eProfNam.Text[Code]+' является зарезервированым '+CRLF+
//                      ' и не может быть использован',PasMess.capWarning,0);
  Exit;
 end;
eProfNam.Text:=ss;

ss:=eProfLab.Text;
if not CheckOnQuotes(ss,Code) then
 begin
  if eProfLab.CanFocus then eProfLab.SetFocus;
//   PassMessage(Handle,'Символ '+eProfLab.Text[Code]+' является зарезервированым '+CRLF+
//                      ' и не может быть использован',PasMess.capWarning,0);
  Exit;
 end;
eProfLab.Text:=ss;

if eProfNam.Text='' then
 begin
  PassMessage(Handle,PasMess.wrnNamAbs,PasMess.capWarning,0);
  eProfNam.SetFocus;
  Result:=False;
  Exit;
 end;

........



В таком вот виде...


chir   (2005-01-13 17:47:00) [8]

ну думаю это не выход. пользователь может стереть дату и при обновлении таблицы у меня опять будет ошибка


Ega23   (2005-01-13 17:44:00) [9]

Ставить значение по-умолчанию, например - сегодня.


Наверх

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