数据保存问题,请高手帮忙。(100分)

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)缓存更新,保存多行记录时,他只保存第一行记录,从第二行起,就不保存里了。
不过在单机版中测试过,可以保存,但是三层结构就不行了。
请问各位好友,如果解决以上问题。在次先谢谢各位好友,
 
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;

end;
fm_data.ClientDataSet1.ApplyUpdates(0);
你可以这样试试。
 
不行的,我试过。
 
服务器无需使用SOCKET。在客户端进行断点测试,if ClientDataSet1.ChangecOUNT>0 then
....
 
我刚才试过了,还是不行的。我们用QQ交谈好吗? 610747036
 
用 ClientDataSet1.datarequest('insert into tablename(FieldName) values(value1,value2,...,)');
这个语句。若是oracle ClientDataSet1.datarequest('begin
insert into tablename(FieldName) values(value1,value2,...,);
end;
');
 
给你分。我还有一个问题,
如何把DBGrid中某一列数据同时Insert到数据库中??????
 
给你分。我还有一个问题,
如何把DBGrid中某一列数据同时Insert到数据库中??????
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
819
SUNSTONE的Delphi笔记
S
I
回复
0
查看
716
import
I
顶部