三层主从表的问题(200分) (200分)

  • 主题发起人 主题发起人 glpttlb
  • 开始时间 开始时间
你的qq??
 
to yangdear
不好意思,还没有qq。
邮件:longbin@gliet.edu.cn。欢迎交流。
 
试试我的远程销售系统,是不是这个意思?
http://www.skycn.com/soft/12896.html
 
你是在Applyupates之前就在客户端通过服务段生成主键,还是在Applyupates中在服务段
某些事件中生成主键
 
to shiningplus
客户端在Applyupates后中在服务段
某些事件中生成主键 ,如果开发过网络版类似进销存的都会知道。
 
to fly555
看了你的软件,界面还不错。但我个人认为此软件功能还类似2层结构,运行速度不会太快。销售单界面有这个意思,但单号不是由人工敲入,而应是服务器端生成,否则没有实用
价值。
 
那么是哪个事件,是BeforeUpdateRecord事件?
如果是,试试下面的代码
procedure TAutoIncMDForm.DataSetProvider1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
begin
if (UpdateKind = ukInsert) and (SourceDS = qryMain)//qryMain是主表名称
begin
//你主表生成主键的代码
//GetCode是生成主键的自定义函数
// FMainCode是RemoteDatamodule的私有变量

FMainCode:==GetCode;
DeltaDS.FieldByName('ID').NewValue:=FMainCode;
end;

// FMainCode是RemoteDatamodule的私有变量
if (UpdateKind = ukInsert) and (SourceDS = qryDetail) and //qryDetail是从表的名称
(DeltaDS.FieldByName('MasterID').Value = Unassigned)
then
then
begin
DeltaDS.FieldByName('MasterID').NewValue := FMainCode;
end;
end;
 
to shiningplus
我目前就是用此方法处理的,但此方法还是有一定缺陷及限制。
不知中间层为pool时,其他用户会不会影响到变量,另如主表也有多记录更新,
此方法不好处理。看来大富翁上是不会有满意的答案了,多谢。
 
多人接受答案了。
 
后退
顶部