TDateset  有组件,Query1,Table2  
Query1(主)  和Table2(从)  是主从表,  
当同时向Query1  和Table2中  添加数据时,说table2不在edit或insert状态下。  
 
Unit1.pas  
 
procedure  TForm1.N_AddClick(Sender:  TObject);//添加数据    界面到Form3中去了  
begin  
   Form3.ShowModal;  
   Form1.N_allClick(self);  
end;  
 
//////////////  
Unit3.pas  中:  
 
   Form1.Query1.Close;  
   Form1.Table2.Close;  
   Form1.Query1.SQL.Clear;  
   Form1.Query1.SQL.Append(str);  
   Form1.Query1.Prepare;  
   Form1.Query1.ExecSQL;  
   Form1.Query1.Close;  
 
//如果没有下面的,就没有出错。  
 
   Form1.Table2.Open;  
   Form1.Table2.Insert;  
   Form1.Table2.AppendRecord([P_ID,P_Co_Name,P_Co_contact,P_Co_Phone,P_Co_Fax,P_Consultant,P_Signer,P_Sum,P_Auditing]);  
   Form1.Table2.Post;  
   Form1.Table2.Close;  
   Form3.Close;  

解决方案 »

  1.   

    if Table2.State In [Dsedit,DsInsert] then
    Table2.Post;;
      

  2.   

    正确判断Table状态
    if Table2.State In [Dsedit,DsInsert] then
    Table2.Post;;
      

  3.   

    AppendRecord会插入数据后Post知道这个就不会出错了。
      

  4.   

    Form1.Table2.Open;
      Form1.Table2.Insert;
      Form1.Table2.AppendRecord([P_ID,P_Co_Name,P_Co_contact,P_Co_Phone,P_Co_Fax,P_Consultant,P_Signer,P_Sum,P_Auditing]);
      Form1.Table2.Post;
      Form1.Table2.Close;
      

  5.   

    不好意思,上面的贴错了。
    去掉Form1.Table2.Insert.
    Form1.Table2.Post;