三层中的主从表问题(50分)

  • 主题发起人 主题发起人 老寒2003
  • 开始时间 开始时间

老寒2003

Unregistered / Unconfirmed
GUEST, unregistred user!
我在中间层做好一个主从表,client端用SOCKET连接,一切设置正常。但添加记录时,打开后
第一次操作成功,但接着增加主表记录后在填写从表内容时出现‘key violatinn’错误。关闭,重新
大开,添加记录正常,但在添加第二条记录时,操作从表时又出现同样错误。即不能连续添加记录,
请问高手为何?该如何解决?谢!
 
三層不是這樣用!
 
主从表的操作需要客户端和中间层配合使用的
 
我再详细说说我的连接方法。我在应用服务器上设置好主从关系后,在client端用
clientdataset连接主表,在主表的clientdataset双击,出现字段编辑器,点右键,add
all fields,当然,主表字段中出现主表所有字段及从表名称的特殊字段。我用另外的
一个clientdataset连接从表的方法是:在从表的clientdataset的datafield属性中选择
主表clientdataset的从表字段。如此连接好后,应该就可以了。也不用在中间层设置事务
了,我以上的故障是在此连接方式下产生的,呵呵,怪我没说清楚。
 
中间层的主从数据集的字段都加入,并设置关键字为inkey
 
你的表是不是有自增字段
 
是啊,是有自增字段。
 
属于关键字造成的问题
1:如果在服务器中的Query之类的控件使用的永久性字段,将所有字段的ProviderFlags中的fInWhere与fInKey设为False 包括关键字
2:在TDataSetProvider控件的onBeforeUpdateRecord事件中写入更新的代码,具体为根据参数UpdateKind 判断是新增还是修改 如果是修改将 关键字的 ProviderFlags中的fInWhere与fInKey设为False 否则设为真
 
后退
顶部