Topic: Получить из компонента datetimepicker значение NULL

Добрый день.
Столкнулся с проблемой, а именно не получается записать в таблицу NULL  из компонента DateTimePicker  при неустановленном Chekbox. Параметр ShowCheckbox = True.

procedure frm_vvod_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
     sDate1 : string = FormatDateTime('dd.mm.yyyy',frm_vvod.DateTimePicker1.Date);
     sDate2 : string = FormatDateTime('dd.mm.yyyy',frm_vvod.DateTimePicker2.Date);
               begin
SQLExecute ('INSERT INTO main (data_1, data_2) VALUES ("'+sDate1+'","'+sDate2+'")');
end;

1)Работаем с DateTimePicker - выбираем из календаря дату. Ставится дата та, которую выбрал. Правильное действие;
2)Не трогаем DateTimePicker - нужно пустое поле NULL. Все равно ставится дата - текущая дата. Не правильное действие - нужно пустое поле NULL.
Поля data_1 и data_2 bvt.имеют текстовый формат

Re: Получить из компонента datetimepicker значение NULL

Andrei wrote:

Добрый день.
Столкнулся с проблемой, а именно не получается записать в таблицу NULL  из компонента DateTimePicker  при неустановленном Chekbox. Параметр ShowCheckbox = True.

procedure frm_vvod_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
     sDate1 : string = FormatDateTime('dd.mm.yyyy',frm_vvod.DateTimePicker1.Date);
     sDate2 : string = FormatDateTime('dd.mm.yyyy',frm_vvod.DateTimePicker2.Date);
               begin
SQLExecute ('INSERT INTO main (data_1, data_2) VALUES ("'+sDate1+'","'+sDate2+'")');
end;

1)Работаем с DateTimePicker - выбираем из календаря дату. Ставится дата та, которую выбрал. Правильное действие;
2)Не трогаем DateTimePicker - нужно пустое поле NULL. Все равно ставится дата - текущая дата. Не правильное действие - нужно пустое поле NULL.
Поля data_1 и data_2 bvt.имеют текстовый формат

это потому, что у Вас данные заполняются при вызове процедуры в блоке VAR
Вы изначально объявляете и заполняете переменные

Re: Получить из компонента datetimepicker значение NULL

Задал вопрос от безысходности...
Не объявляю переменную. Без var

SQLExecute ('INSERT INTO main (data_1,data_2) VALUES ("'+ FormatDateTime('DD.MM.yyyy',  frm_vvod.DateTimePicker1.Date)  + '", "'+ FormatDateTime('DD.MM.yyyy',  frm_vvod.DateTimePicker2.Date)  + '")')

Все тоже самое.
Не трогаю DateTimePicker, чтобы получить пустое поле NULL. Все равно ставится дата - текущая дата.

Re: Получить из компонента datetimepicker значение NULL

Andrei wrote:

Задал вопрос от безысходности..

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
  SQLExecute('INSERT INTO test(ee,dateTime)VALUES("Опа!", '''+Form1.DateTimePicker1.sqlDateTime+''')');
  updateDataBase('test');
end;

5 (edited by Andrei 2022-03-11 14:15:17)

Re: Получить из компонента datetimepicker значение NULL

Спасибо. Понял.

SQLExecute('INSERT INTO test(ee,dateTime)VALUES('''+Form1.DateTimePicker1.sqlDate+''')');