TDateset 有组件,Query1,Table2
Query1(主) 和Table2(从) 是主从表,
当同时向Query1 和Table2中 添加数据时,说table2不在edit或insert状态下。Unit1.pasprocedure 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;
Query1(主) 和Table2(从) 是主从表,
当同时向Query1 和Table2中 添加数据时,说table2不在edit或insert状态下。Unit1.pasprocedure 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;
所以不用Post
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.Close;
InsertRecord、AppendRecord过程调用前需要把DataSet的状态改为Edit,Insert、Append、InsertRecord、AppendRecord调用之后会把DataSet的状态改为browse
如:
with Form1.Table2 do
begin
Open;
Edit;
AppendRecord([P_ID,P_Co_Name,P_Co_contact,P_Co_Phone,P_Co_Fax,P_Consultant,P_Signer,P_Sum,P_Auditing]);
Close;
end;或者: with Form1.Table2 do
begin
Open;
Insert;
Edit;
FieldByName('ID').AsString:=P_ID; ... ...
Post;
Close;
end;
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]);
这两个不能同时出现在操作中吧~~
table1.fieldbyname('??').value:=??;
table1.post;
插入整条记录时不用post