【问题标题】:copy records in a master/detail clientdataset delphi dbexpress在主/详细客户端数据集中复制记录 delphi dbexpress
【发布时间】:2010-08-19 23:59:36
【问题描述】:

如何将记录的信息从主/详细客户端数据集中复制到新记录或现有记录。

比如我想把100号发票的数据复制到150号发票或者100号发票的信息复制到一个新的发票

使用 IBX,我使用存储过程做到了这一点,但是当我应用更新时,我遇到了客户端数据集的问题,“无等待事务上的锁定冲突”,我认为这是因为信息已经在服务器端。

提前致谢

【问题讨论】:

  • 您按照我认为的方式进行操作。两个客户端数据集,CDS1 是源,CDS2 是目标,然后执行 CDS2.Insert、CDS2Field1.Value := CDS1Field1.Value 等、CDS2.Post、CDS2.ApplyUpdates。真正的问题是你为什么会收到这个错误,你需要提供更多信息来回答这个问题,但是如果你用谷歌搜索错误消息,你会发现很多材料解释了为什么会发生。
  • 非常感谢,我会调查一下

标签: delphi delphi-2010 dbexpress


【解决方案1】:

'无等待事务锁定冲突'?

AFAIR,这是一个 Interbase/Firebird 错误。这可能意味着其他连接修改了记录但仍未提交......

更新: 想到的其他事情:

  • 您是否修改了 DBX 连接配置?如果您不知道/忽略 CommitRetaining 是/做什么,请确保将其配置为 FALSE。否则会出现其他问题...

  • 在 Firebird/Interbase 上,您只能从客户端应用程序提交/回滚。 SP 与事务控制无关。

【讨论】:

  • 非常感谢。问题,我可以提交存储过程吗?
  • 我想就是这样!!非常感谢我将 Commitretain = false 放在 sqlconection 的参数上,现在一切似乎都正常了,还有很多东西要学。我还应该在该连接参数上添加什么以使事情顺利进行吗?
  • 从心里,不。但是,如果您提供:RDBMS 名称/版本/版本(例如:Firebird 2.1.1、Microsoft SQL Server 2005 Express Edition 等)、IDE(delphi - 您提供)、IDE 版本(2010)和您正在使用的库(dbexpress - 您提供)。如果我不知道错误消息并假设您是 Interbase/Firebird 作为后端,那么这个问题将需要更多时间才能得到答案。
  • 您使用的是什么作为后端:Firebird 还是 Interbase?
  • 它是带有 dbexpress firebird 驱动程序的 Firebird 2.1,来自 Chau Chee-Yang (sites.google.com/site/dbxfirebird),delphi 2010 非常感谢
猜你喜欢
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
相关资源
最近更新 更多