W
wlt3022
Unregistered / Unconfirmed
GUEST, unregistred user!
各位,好友!
我用的是三层结构,服务端用的是。SOCKET,ADOConnection1,DataSetProvider1,ADOQuery1等,客户端用的是:
SocketConnection1,ClientDataSet1,DataSource1,DBGrid1,等。发现添加多行数据到数据库中,每次只能保存第一行记录。而且每次都是保存第一条记录。
部分代码如下:
//////////////////////////////////////////////////////////////////////////////////////
procedure Twdj_jhd.N1Click(Sender: TObject);
//增加物料
var
i: integer;
a:string;
begin
application.createform(Twlmain1, wlmain1);
try
wlmain1.showmodal;
finally
wlmain1.Free;
for i := Low(ClbmRec) to High(clbmRec)do
begin
fm_data.ClientDataSet1.Insert;
a:=trim(DBEdit1.Text);
fm_data.ClientDataSet1.fieldbyname('jhbh').Value:=a;
fm_data.ClientDataSet1.fieldbyname('bm').value := clbmRec.clbh;
fm_data.ClientDataSet1.fieldbyname('mcxh').value := clbmRec.clmc;
fm_data.ClientDataSet1.fieldbyname('gg').value := clbmRec.clgg;
fm_data.ClientDataSet1.fieldbyname('shl').value := clbmRec.clshl;
fm_data.ClientDataSet1.Post;
fm_data.ClientDataSet1.ApplyUpdates(0);
end;
end;
end;
/////////////////////////////////////////////////////////////////////////////////////////
发现 fm_data.ClientDataSet1.Post;
这行没有起到作用,没有他也可以保存,因为调用了缓存更新,
但是,用这个fm_data.ClientDataSet1.ApplyUpdates(0)缓存更新,保存多行记录时,他只保存第一行记录,从第二行起,就不保存里了。
不过在单机版中测试过,可以保存,但是三层结构就不行了。
请问各位好友,如果解决以上问题。在次先谢谢各位好友,
我用的是三层结构,服务端用的是。SOCKET,ADOConnection1,DataSetProvider1,ADOQuery1等,客户端用的是:
SocketConnection1,ClientDataSet1,DataSource1,DBGrid1,等。发现添加多行数据到数据库中,每次只能保存第一行记录。而且每次都是保存第一条记录。
部分代码如下:
//////////////////////////////////////////////////////////////////////////////////////
procedure Twdj_jhd.N1Click(Sender: TObject);
//增加物料
var
i: integer;
a:string;
begin
application.createform(Twlmain1, wlmain1);
try
wlmain1.showmodal;
finally
wlmain1.Free;
for i := Low(ClbmRec) to High(clbmRec)do
begin
fm_data.ClientDataSet1.Insert;
a:=trim(DBEdit1.Text);
fm_data.ClientDataSet1.fieldbyname('jhbh').Value:=a;
fm_data.ClientDataSet1.fieldbyname('bm').value := clbmRec.clbh;
fm_data.ClientDataSet1.fieldbyname('mcxh').value := clbmRec.clmc;
fm_data.ClientDataSet1.fieldbyname('gg').value := clbmRec.clgg;
fm_data.ClientDataSet1.fieldbyname('shl').value := clbmRec.clshl;
fm_data.ClientDataSet1.Post;
fm_data.ClientDataSet1.ApplyUpdates(0);
end;
end;
end;
/////////////////////////////////////////////////////////////////////////////////////////
发现 fm_data.ClientDataSet1.Post;
这行没有起到作用,没有他也可以保存,因为调用了缓存更新,
但是,用这个fm_data.ClientDataSet1.ApplyUpdates(0)缓存更新,保存多行记录时,他只保存第一行记录,从第二行起,就不保存里了。
不过在单机版中测试过,可以保存,但是三层结构就不行了。
请问各位好友,如果解决以上问题。在次先谢谢各位好友,