字段num_med无法修改[关闭]

问题描述 投票:-4回答:1

我把这个代码放在一个speedbutonclick但是当我试图执行它时,我得到的消息说,字段num_med无法修改,代码是

   procedure TAddEdiMedForm.SpeedButton1Click(Sender: TObject);
   begin
   DM.MedicamentTable.InsertRecord([ Edit1.Text, Edit2.Text, Edit3.text,
                                            Edit4.Text, Edit5.Text, Edit6.Text, 
   Edit7.Text]);
   CloseModal;                                              
   end;
delphi
1个回答
1
投票

问题是尝试为您正在尝试使用InsertRecord语句的AutoInc字段插入一个值。您需要在插入新行后检索AutoInc值(从服务器),而不是尝试从客户端强制一个值!

由于添加新行时无法为AutoInc字段指定值,因此需要避免使用InsertRecord。相反,在数据集上调用Insert,通过单独的赋值语句填充其他(非AutoInc)字段,然后调用Post。如何最好地检索AutoInc值取决于后端服务器,虽然FireDAC通常可以很好地为您执行此操作 - 查找如何从联机帮助中获取值或谷歌它。

您应该已经提到Num_med字段是您的q中的AutoInc,而不是轻率地说它是评论中的Int字段,以回复您应该首先提供的信息的查询。将来,请通过在初始q中包含所有相关信息,为读者进行一些考虑。

© www.soinside.com 2019 - 2024. All rights reserved.