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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2009, 18:41   #1
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию DBDateTimePicker и ShowCheckBox

Подскажите, пожалуйста, что с этим делать. У меня дата в базу заносится из DBDateTimePicker'а. Формат Short. И все было отлично - заносило только дату, пока я не установила свойство ShowCheckBox в true, чтобы была возможность оставлять дату пустой. Так когда стоит этот чек бокс, то он добавляет еще и время..

Кто-то знает как с этим бороться??
yulia вне форума Ответить с цитированием
Старый 17.08.2009, 19:48   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Можно вот так:
Код:
  if not DateTimePicker1.Checked then Exit;
  Edit1.Text := DateToStr(DateTimePicker1.Date);
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 10:33   #3
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

В том то и дело, что мне некуда писать DateTimePicker1.Date.
У меня происходит добавление в базу Access
1.ADOTable1.insert;
2.Вызывается форма с этими пикерами
3.if ADOTable1.modified then ADOTable1.post.

т.е. ничего не передается.. в этом случае можно как-то время убрать?
yulia вне форума Ответить с цитированием
Старый 18.08.2009, 12:16   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Значит при условии 3, делать проверку
Код:
if not DateTimePicker1.Checked then 
  <При добавлении место с датой оставить пустым>
else
  <вставить в базу - DateToStr(DateTimePicker1.Date)>
P.S. Вы как добавляете в базу, SQL или по другому?
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 12:19   #5
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

по другому.. там некуда ставить проверку вообще....

Код:
ADOTable1.insert;
if ADOTable1.modified then ADOTable1.post.
Это весь код на добавление... просто используются клмпоненты DB.
yulia вне форума Ответить с цитированием
Старый 18.08.2009, 12:26   #6
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Так ведь ADOTanle1 это ничто иное как таблица. А даты у Вас в DateTimePicker1, следовательно делать проверку при закрытии формы (2) или перед ADOTable1.Post, на DateTimePicker1.Checked и заполнять пустотой необходимые поля в ADOTable1.
В общем нужно куда то впихнуть эту проверку.
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 14:36   #7
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Про проверку все понятно, но хоть убей не могу придумать как ее прикрутить..

Код:
if DM.t_orders.modified then DM.t_orders.post;
Form6.Close;
Ну и куда здесь можно прилепить проверку? если компонент DBDateTimePicker??? т.е. как только мы устанавливаем дату, она сразу заносится в таблицу, а кодом просто сохраняем изменения...

а самое не понятное почему до этого чекбокса все ок работало?

Последний раз редактировалось yulia; 18.08.2009 в 14:40.
yulia вне форума Ответить с цитированием
Старый 18.08.2009, 14:46   #8
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Вы как заносите в таблицу значение, через метод OnCloseUp?
Тогда можно вот так:
Код:
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
  if not DateTimePicker1.Checked then <что-то>
  // Свои действия
end;
psycho-coder вне форума Ответить с цитированием
Старый 18.08.2009, 14:57   #9
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

нее.. в том то и дело, что значения заносятся сами по себе автоматически

1.ADOTable1.insert; - создаем новую запись
2.Вызывается форма с этими пикерами
3.if ADOTable1.modified then ADOTable1.post. - достаточно просто установить дату или занести значение в дбэдит (неважно), то это значение автоматически заносится в нужный столбец, ведь компоеннты сразу привязаны к таблице и ее полям.

И все, а потом только постом подтверждаем занесение.

И к тому же.. зачем эта проверка, если когда галочка не стоит, то это и так значит, что будет пустое значение...
yulia вне форума Ответить с цитированием
Старый 18.08.2009, 15:09   #10
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Ладно. Как у Вас связаны таблица с DateTimePicker?
psycho-coder вне форума Ответить с цитированием
Ответ


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