Table1.append ;
......
with Table1 do
begin
      
FieldByName('ID').asinteger:=99;//这条语句必须执行,注释掉就报错:
//"Field 'ID' must have a value",可是加上数据库中又没保存??
      FieldByName'Message_content').AsString :=Memo_message_content.Text;FieldByName('Message_type').AsString :=comboBox_message_type.Text; FieldByName('Message_key').AsString := edit_message_key.Text;
FieldByName('Message_Source_ID').Asinteger := unit4.userid; 
FieldByName('Create_date').AsDateTime:=DateTimePicker1.date; //
               
post ;
Refresh ;
end ;table1.enablecontrols;

解决方案 »

  1.   

    问题不是后台,以前生成的EXE文件还依然能用,未报field ID must have a value 错误。不知原因何在?前台错在何处?
        我改的时候只是把table控件删了一下,又重新创建了这个控件,但是,问题就这样来了:
        对于种子字段ID:
        FieldByName('ID').asinteger:=99;//这条语句必须执行,注释掉就报错:"Field 'ID' must have a value",可是加上数据库中又没保存下来。
        真让人急得慌,两天没干别的事,就盯着这个看,也没看出任何名堂!
      

  2.   

    在delphi中将ID字段的required设为false,这个值缺省值为真,可能你不小心设为true了,required设为TRUE时这个字段必须不为空这条纪录才能保存,而不管后台数据库是否有缺省值
      

  3.   

    to wks(mex):
    不行的,不是这个原因,我从未改过ID字段的Required属性。刚刚把required改了一下,但是不行。
      

  4.   

    to ljhjl(入海流) :
    我也忙了快一个星期了,别着急,兴许会有办法的。
      

  5.   

    改用TQuery试一下,如果还有问题的话,就可能是你的Delphi环境有问题了,把Delphi重新安装一下应该就可以了(没办法中的办法)
      

  6.   

    我是用wks(mex)说的方法解决了,可是后来又出现了这个问题,说明跟环境确实有关,重装后就可以了
    就是在前面加上 fieldbyname(id).required:=false;
      就可以了,yiyizq0260你可以试下。
      

  7.   

    ljhjl(入海流) :
       感谢你的提醒!加上这条语句后,终于恢复正常了!wks(mex)的方法我没有用语句试,只在控件中改成了false,就放弃了!
       谢谢!非常感谢!
       稍后散分!