안녕하세요.
프로그램중에 한가지 막히는게 있어서 질문을 드립니다.
지금까지는 이곳의 질문란에서 찾아서 해결했는데 이번것은 없는것 같아서...
C/S 환경, NT 서버, SQL 설치하여 동작합니다.
하나의 MAIN DB에 5개의 SUB DB가 해당키의 내용에 맞추어 보여줍니다.
키를 SANO 라고 했을때 Master/Detail 식으로 동작하도록 Query 콤포넌트로 구현했습니다. 여기 질문란을 찾아서 해결했지요.
그런데, 수정이나 추가를 해야 할때요. 트랜잭션을 걸어서 Cached Update를 하려고
합니다. Main DB에 대해서는 수정/추가가 되는데요.
Sub DB에는 되지를 않아요.
db_Main.StartTransaction; // 트랜잭션 시작.
q_Main.Edit; q_Sub01.Edit;
q_Sub02.Edit; q_Sub03.Edit;
q_Sub04.Edit; q_Sub05.Edit;
.
.
try
q_Main.ApplyUpdates; q_Sub01.ApplyUpdates;
q_Sub02.ApplyUpdates; q_Sub03.ApplyUpdates;
q_Sub04.ApplyUpdates; q_Sub05.ApplyUpdates;
db_Main.Commit;
except
ShowMessage('저장 명령을 수행할수 없어 저장을 취소합니다.');
db_Main.Rollback;
end; // Cache Buffer Clear
q_Main.CommitUpdates; q_Sub01.CommitUpdates;
q_Sub02.CommitUpdates; q_Sub03.CommitUpdates;
q_Sub04.CommitUpdates; q_Sub05.CommitUpdates;
.
.
위처럼 했는데요. Main DB는 저장이 되는데, Sub는 저장이 되지 않아요.
UpdateSQL 도 연결을 했구요, UpdateSQL Editor로 키필드를 sano로 주고
Generate SQL 버튼을 눌러서 문장을 만들었습니다.
제대로 적지도 못했지만 많은 도움 바랍니다.
미리 감사드립니다.
위대한 단군혼이 살아있는 나라... 대한민국
음... 동족을 만나니.. 기쁘네요.. 하하...
우선 Master Detail 관계이든 아니든 디비를 각각 열어주셧으면 UpdateSQL도 각각 설정을
하셔야 하구요... 그리고 이런경우 read only = False로 캐시 업데이트는 트루로 해주
시면 됩니다... UpdateSQL은 사용하실줄 아시는것 같으니 넘어가구요....
그냥 이렇게만 하면 자료는 저장되게 되어 있는데...
안된다면 다른부분이 이상할것 같네요... 상세한 코드를 보면 더 좋겠네요..
그럼 즐거운시간 되세요
- 하얀까마귀 -
까마귀 wrote:
> 안녕하세요.
> 프로그램중에 한가지 막히는게 있어서 질문을 드립니다.
> 지금까지는 이곳의 질문란에서 찾아서 해결했는데 이번것은 없는것 같아서...
>
> C/S 환경, NT 서버, SQL 설치하여 동작합니다.
> 하나의 MAIN DB에 5개의 SUB DB가 해당키의 내용에 맞추어 보여줍니다.
> 키를 SANO 라고 했을때 Master/Detail 식으로 동작하도록 Query 콤포넌트로 구현했습니다. 여기 질문란을 찾아서 해결했지요.
> 그런데, 수정이나 추가를 해야 할때요. 트랜잭션을 걸어서 Cached Update를 하려고
> 합니다. Main DB에 대해서는 수정/추가가 되는데요.
> Sub DB에는 되지를 않아요.
> db_Main.StartTransaction; // 트랜잭션 시작.
> q_Main.Edit; q_Sub01.Edit;
> q_Sub02.Edit; q_Sub03.Edit;
> q_Sub04.Edit; q_Sub05.Edit;
> .
> .
> try
> q_Main.ApplyUpdates; q_Sub01.ApplyUpdates;
> q_Sub02.ApplyUpdates; q_Sub03.ApplyUpdates;
> q_Sub04.ApplyUpdates; q_Sub05.ApplyUpdates;
> db_Main.Commit;
> except
> ShowMessage('저장 명령을 수행할수 없어 저장을 취소합니다.');
> db_Main.Rollback;
> end; // Cache Buffer Clear
> q_Main.CommitUpdates; q_Sub01.CommitUpdates;
> q_Sub02.CommitUpdates; q_Sub03.CommitUpdates;
> q_Sub04.CommitUpdates; q_Sub05.CommitUpdates;
> .
> .
>
> 위처럼 했는데요. Main DB는 저장이 되는데, Sub는 저장이 되지 않아요.
> UpdateSQL 도 연결을 했구요, UpdateSQL Editor로 키필드를 sano로 주고
> Generate SQL 버튼을 눌러서 문장을 만들었습니다.
> 제대로 적지도 못했지만 많은 도움 바랍니다.
> 미리 감사드립니다.
>
>
>
> 위대한 단군혼이 살아있는 나라... 대한민국