Показать сообщение отдельно
  #1  
Старый 16.07.2011, 18:41
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
Вопрос CheckBox не выключается

Здравствуйте!

Есть табличка DevExpress TcxGrid со строками и столбцами, всё как положено, всё работает.
В табличке один столбец является boolean и отображается как CheckBox.
Табличка и процедуры бд работают просто - если строка таблицы отмечена галочкой и содержит данные - записывается в БД,
если галочку снимаешь - из БД удаляется вся строка-запись (при нажатии кнопки подтверждения в форме).
Если галочки нет, то при вводе в любую другую колонку данных - галочка в данной строке включается.

Проблема же в том, что если галочка стоит, то снять никак не получается... наводишь на галочку, клацаешь мышкой, галочка пропадает... но стоит сделать малейшее движение - сменить строку, нажать на кнопку, закрыть форму, любое действие - галочка опять восстанавливается!

В БД всё нормально, проверял неоднократно разными способами. Процедура и qry только одни.
Возможно баг в этой процедуре, которую я и не очень то понимаю, то есть всё написанное очевидно, но как-то не хватает что-ли логической связки (if then или case)
Код:
procedure TDM2.qryGuestListBeforePost(DataSet: TDataSet);
begin
 StartTran;
 With qryGuestList do begin
  FN('IS_ONLINE').AsBoolean:=not FieldByNAme('GUEST_EXTENT').IsNull;
 end;
end;
IS_ONLINE - и есть тот самый CheckBox

1. объясните, пожалуйста, что делает данная процедура после слова begin обычным языком?
2. Какие есть настройки CheckBox которые могут влиять на данный баг?
3. В SQL пытался написать сменить метод удаления данных, проверять не отмеченную галочку, а наличие данных, написал строку вида ...if (GUEST_EXTENT = null) then... - пишет ошибка синтаксиса... странно, вроде верно же всё?
Ответить с цитированием