Показать сообщение отдельно
  #4  
Старый 06.01.2014, 12:52
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Вот непонятный кусок кода из модуля "M1":
Код:
procedure TForm3.Button1Click(Sender: TObject);
begin
.....
  DM.OtvetTestera.Open;
  DM.OtvetTestera.Append;
  if (RadioButton1.Checked = False) and (RadioButton2.Checked = False) and
    (RadioButton3.Checked = False) and (RadioButton4.Checked = False) and
    (RadioButton5.Checked = False) then
    MessageDlg('Выберите вариант ответа!', mtWarning, [mbOK], 0)
  else
  begin
    if RadioButton1.Checked = True then
    begin
      if not (DM.OtvetTestera.FieldByName('ID_user').IsNull) then
        DM.OtvetTestera.FieldByName('ID_user').AsInteger := strtoint(DM.Testiruemiy.FieldValues['ID_user']);
      if not (DM.OtvetTestera.FieldByName('№VO').IsNull) then
        DM.OtvetTestera.FieldByName('№VO').AsInteger := strtoint(DM.M1V1.FieldValues['№VO']);
      DM.OtvetTestera.Post;
.....
Зачем здесь проверки полей на IsNull? Ведь перед этим была добавлена новая, пустая запись (через Append), поэтому очевидно что все поля будут IsNull (пустые).
Или по крайней мере нужно изменить условие на обратное, а то получается, что если поле не пустое (т.е. not null, что в данном случае никогда не будет), то делаем в нём изменения, а если поле было пустое (что в данном случае будет всегда), то оно таким пустым и останется и в результате будет попытка записать полностью пустую запись.
Ответить с цитированием