ClientDataSet中用insert后怎样进行更新???(50分)

  • 主题发起人 主题发起人 coffeeffee
  • 开始时间 开始时间
C

coffeeffee

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构中,客户端,有下列代码:
with data_insert.ClientDataSet3do
begin
close;
commandtext:= 'insert into t1(c1,c2)values(1,1)'
Execute;
end;
中间层就是用bde与数据库相连的dataprovider,上述代码执行后,请问如何及时进行更新?
用applyupdate(-1)提示 此操作不能在关闭的ClientDataSet中执行,再加上open出现不能
插入重复的纪录(定义了主关键字);到底怎样可以更新呢?请指教!!!
 

with data_insert.ClientDataSet3do
begin
disablecontrols;
close;
Open;
enablecontrols;
end;
v
 
with data_insert.ClientDataSet3do
begin
Append;
FieldByName('c1').Value := 1;
FieldByName('c2').Value := 1;
Post;
ApplyUpdates(-1);
Refresh;
end;
 
我有oracle 时
with data_insert.ClientDataSet3do
begin
close;

commandtext:= 'insert into t1(c1,c2)values(1,1)',
Execute;
commandtext:='commit',//提交
Execute;
end;
不需要用ApplyUpdates(-1)
 
data_insert.ClientDataSet3 .active := true;
然后调用applyupdate(0)
在RemoteDataMoudle中,可以修改的字段,下面这个属性
ClientDataSet.Fields.Providerflags的值必定不为pfInUpdate,
所以你可以先判断你所定义的主关键字有没有这个属性(当然是没有),然后....
看你了!
 
多人接受答案了。
 
后退
顶部