2010-08-19 2 views
0

레코드의 정보를 마스터/세부 클라이언트 데이터 세트에서 새 레코드 또는 기존 레코드로 복사하는 방법은 무엇입니까?마스터 레코드/세부 클라이언트 데이터 세트 delphi dbexpress

예를 들어 나는 송장 송장 번호 (100)의 테 데이터를 복사 할 제 150 IBX와

내가 storedprocedures로하지만 난으로 실행하고 있음을했던 새로운 송장 송장 번호 (100)의 정보 업데이트를 적용 할 때 '잠금 충돌이 발생하지 않는 트랜잭션 잠금'으로 인해 clientdataset 문제가 발생했습니다. 정보가 이미 서버 측에 있다고 생각됩니다.

미리 감사드립니다.

+0

당신이하는 것처럼 생각합니다. 두 개의 클라이언트 데이터 세트, CDS1은 소스, CDS2는 목적지, CDS2.Insert, CDS2Field1.Value : = CDS1Field1.Value 등, CDS2.Post, CDS2.ApplyUpdates. 실제 질문은 왜 그 오류를 얻었습니까? 답변을 얻으려면 더 많은 정보를 제공해야하지만 Google에 오류 메시지가 나타나면 왜 오류가 발생하는지 설명하는 많은 자료를 찾을 수 있습니다. – LachlanG

+0

대단히 고마워요, 그걸 살펴 보겠습니다. –

답변

0

'lock 충실한 대기 트랜잭션 없음'?

AFAIR, 이는 Interbase/Firebird 오류입니다. 그것은 .... 다른 연결이 기록을 수정하고 여전히 아직 커밋하지 않는다는 것을 의미 할 수

UPDATE :

  • 당신이 당신의 DBX 연결 설정을 수정 한 적이 : 마음에 온 다른 것들? CommitRetaining이/do 무엇인지 모르거나 무시한다면, 그것이 FALSE로 설정되어 있는지 확인하십시오. 그렇지 않으면 다른 문제가 발생합니다 ...

  • Firebird/Interbase에서는 클라이언트 응용 프로그램에서만 커밋/롤백 할 수 있습니다. SP는 트랜잭션 제어와 아무런 관련이 없습니다.

+0

고마워요. 질문 : 저장 프로 시저를 커밋 할 수 있습니까? –

+0

나는 그것이 있었다라고 생각한다!! 대단히 감사합니다. sqlconection의 params에 Commitretain = false를 넣었습니다. 이제 모든 것이 정상적으로 작동하는 것 같습니다. 배울 점이 많습니다. 다른 것들을 부드럽게하기 위해 그 연결 매개 변수에 넣어야하는 것은 무엇입니까? –

+0

마음에서, 아니오. 그러나 RDBMS 이름/버전/에디션 (예 : Firebird 2.1.1, Microsoft SQL Server 2005 Express Edition 등), IDE (델파이 - 제공), IDE 버전 (2010) 및 사용중인 라이브러리 (dbexpress - 제공 한 라이브러리). 마음에서 오류 메시지를 알지 못해서 Interbase/Firebird가 백엔드라고 가정하면이 질문에 답변을 얻는 데 더 많은 시간이 걸릴 것입니다. –