如何把数据插入主表中?
大概思路是这样的,
1、新建一个窗体spdawh,用来显示详细信息。放了一个Table1(ADOTable1控件)用来连接主表sqda,ADOTable3控件连接从表GHSDA,连接keyfield是mainghs。最后用TDBGrid来显示详细信息。再放一个按钮,用来触发显示editsp窗体,代码如下:
procedure Tspdawh.BitBtn1Click(Sender: TObject);
begin
try
Application.CreateForm(Teditsp, editsp);
editsp.ShowModal;
finally
editsp.close;
end;
end;
2、在Teditsp窗体中放了一个导航控件wwDBNavigator,有修改和插入等功能,代码如下:
procedure Teditsp.NewCode(Sender: integer);//自动获取编号
var code: string;
begin
Query1.Close;
Query1.sql.text := 'select count(*) from spda';
Query1.open;
code := floattostr(100000 + Query1.Fields[0].asfloat + Sender);
Query1.Close;
Query1.sql.text := 'select count(*) from spda where code=:code';
Query1.Parameters[0].Value := code;
Query1.open;
if Query1.Fields[0].Value > 0 then
begin
Sender := sender + 1;
Newcode(sender);
end
else
begin
spdawh.Table1.FieldByName('code').value := code;
end;
end;
procedure Teditsp.wwDBNavigator1InsertClick(Sender: TObject);//插入数据
begin
spdawh.Table1.Insert;
NewCode(0);
spdawh.Table1.FieldByName('czsp').value := '0';
spdawh.Table1.FieldByName('zhsp').value := '0';
spdawh.Table1.FieldByName('sybz').value := '1';
end;
当插入数据时,出现错误提示:EOLeException with message'发生未知错误'。跟踪后发现这几个地方有问题:
spdawh.Table1.FieldByName('code').value := code;
spdawh.Table1.FieldByName('czsp').value := '0';
spdawh.Table1.FieldByName('zhsp').value := '0';
spdawh.Table1.FieldByName('sybz').value := '1';
后来我把窗体spdawh的从表去掉?再进行同样的操作,正常!!要怎么修改才能把数据插入主表sqda中?谢谢!!