M
maming
Unregistered / Unconfirmed
GUEST, unregistred user!
<<三层应用>>按delphi5中的主从表数据库应用的标准方法实现主从表数据的增删改。
但在从表增加多条数据的情况下数据就不对了。主表的主键与从表的主键都是正确的。
也就是想在应用服务器中对从表控制,却实现不了。
服务器端代码:
procedure Tremotedatamodule.Tdatasetprovede1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
begin
if SourceDS.Name = 'qrymaseter' //主表
then
try
//处理主表的数据库
with deltadsdo
begin
edit;
FieldbyName('inputdate').Asstring := datetimetostr(now);
end;
except
on e:exceptiondo
...
end
else
try //从表
//处理从表的数据库
with deltadsdo
begin
edit;
FieldbyName('inputdate').Asstring := datetimetostr(now);
end;
except
on e:exceptiondo
...
end;
end;
客户端applyupdate数据后,主表的数据是对的,从表如果是多条数据也就是usinsert时,
只有一条成功,也不会出错,但只存入第一条数据,如果不对从表控制(删除第二个try)
的话,从表的多条数据可以成功的加入。请高手提个见意,如何解决这个bug(我想这是
个bug了)。
高分回报+万份感激...
但在从表增加多条数据的情况下数据就不对了。主表的主键与从表的主键都是正确的。
也就是想在应用服务器中对从表控制,却实现不了。
服务器端代码:
procedure Tremotedatamodule.Tdatasetprovede1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
begin
if SourceDS.Name = 'qrymaseter' //主表
then
try
//处理主表的数据库
with deltadsdo
begin
edit;
FieldbyName('inputdate').Asstring := datetimetostr(now);
end;
except
on e:exceptiondo
...
end
else
try //从表
//处理从表的数据库
with deltadsdo
begin
edit;
FieldbyName('inputdate').Asstring := datetimetostr(now);
end;
except
on e:exceptiondo
...
end;
end;
客户端applyupdate数据后,主表的数据是对的,从表如果是多条数据也就是usinsert时,
只有一条成功,也不会出错,但只存入第一条数据,如果不对从表控制(删除第二个try)
的话,从表的多条数据可以成功的加入。请高手提个见意,如何解决这个bug(我想这是
个bug了)。
高分回报+万份感激...