2010-08-19 90 views
0

如何將記錄信息從主/客戶數據集複製到新記錄或現有記錄中。在主/客戶端數據庫中複製記錄delphi dbexpress

比如我要複製發票100號的德數據發票150號或發票號100的一個新的發票

隨着IBX我這樣做,與storedprocedures但我遇到的信息客戶端數據庫遇到'沒有等待事務時發生鎖衝突'的問題,當我應用更新時,我認爲它是因爲這些信息已經在服務器端。

在此先感謝

+0

你這樣做,我認爲你是這樣做的。兩個客戶端數據集,CDS1是源,CDS2是目標,然後是CDS2.Insert,CDS2Field1.Value:= CDS1Field1.Value等,CDS2.Post,CDS2.ApplyUpdates。 真正的問題是爲什麼你會得到這個錯誤,你需要提供更多的信息來回答這個問題,但是如果你google了錯誤信息,你會發現很多解釋它發生的原因。 – LachlanG 2010-08-20 01:19:31

+0

非常感謝,我會考慮一下 – 2010-08-20 16:08:55

回答

0

'無衝突等待事務'鎖?

AFAIR,這是一個Interbase/Firebird錯誤。這可能意味着其他連接修改過的記錄,仍然還沒有提交....

UPDATE:

  • 您已經修訂您的DBX連接配置: 來考慮其他的事情?如果您不知道/忽略CommitRetaining的作用,請確保將其配置爲FALSE。否則,會出現其他問題...

  • 在Firebird/Interbase上,您只能從客戶端應用程序提交/回滾。 SP與交易控制無關。

+0

非常感謝。 問題,我可以提交存儲過程嗎? – 2010-08-20 17:40:49

+0

我認爲就是這樣!非常感謝你 我把Commitretain = false放在sqlconection的params上,現在一切都好了,有很多東西需要學習。 還有什麼我應該把這個連接params來平滑事情? – 2010-08-20 18:05:50

+0

從頭到尾,沒有。但是,如果您提供RDBMS名稱/版本/版本(例如:Firebird 2.1.1,Microsoft SQL Server 2005 Express Edition等),IDE(您提供的delphi),IDE版本(2010)以及你正在使用的庫(dbexpress - 你提供的)。 如果我不知道錯誤信息,並假定您是Interbase/Firebird作爲後端,則此問題需要更多時間才能獲得答案。 – 2010-08-20 18:20:38