안녕하세요?
델파이 4.0 c/s,Mssql7.0,WinNt 4.0을 사용중입니다..
데이터를 입력하는 부분이 두부분으로 되어 있습니다.. 그래서 테이블도 두개 이지요..
속도 문제로 테이블컴포는 안쓰고 모두 쿼리 콤포를 사용했습니다.
***첫번째 입력 부분
쿼리A이고 이부분은 대부분 DBEdit컴포들이 있습니다.
새로운 자료 입력시는 Append를 시켜주고 DBEdit에서 직접 수정및 입력을 합니다..
쿼리A의 설정은 RequestLive는 True, CachedUpdates속성도 True..
***두번째 입력 부분
쿼리B이고 이부분은 DBGrid컴포로 있습니다.
새로운 자료 입력시는 Append를 시켜주고 DBGrid에서 직접 수정및 입력을 합니다..
쿼리B의 설정은 RequestLive는 True, CachedUpdates속성도 True..
*****
위와 같은 상태에서 수정 및 삽입을 한후 저장 버튼을 누르게 되면 아래 코드가 실행되어
실제 데이터베이스에 기록이 되어야 하는데 쿼리A는 실제 데이터베이스에 기록이 되는데
쿼리B는 실제 데이터베이스에 반영이 전혀 되질 않습니다..
다시 말해 둘중에 하나만 실제 데이터베이스에 반영이 된다는 얘기이지요..
두개의 쿼리 컴포를 캐쉬한후 ApplyUpdates메소드로 실제 데이터베이스에 모두 반영이
되도록 할수 있는 방법은 없는지요.. 아래 소스 코드가 있으니 참고 하시고 답변 부탁드립니다.
추가로 수정및 삽입후 쿼리의 Post메소드는 사용하지 않았는데, 혹시 이것때문에 그런지요..
감사합니다..
With 쿼리A do
begin
if Active then
begin
ApplyUpdates;
end;
end;
With 쿼리B do
begin
if Active then
begin
ApplyUpdates;
CommitUpdates;
end;
end;
> 안녕하세요?
> 델파이 4.0 c/s,Mssql7.0,WinNt 4.0을 사용중입니다..
> 데이터를 입력하는 부분이 두부분으로 되어 있습니다.. 그래서 테이블도 두개 이지요..
> 속도 문제로 테이블컴포는 안쓰고 모두 쿼리 콤포를 사용했습니다.
> ***첫번째 입력 부분
> 쿼리A이고 이부분은 대부분 DBEdit컴포들이 있습니다.
> 새로운 자료 입력시는 Append를 시켜주고 DBEdit에서 직접 수정및 입력을 합니다..
> 쿼리A의 설정은 RequestLive는 True, CachedUpdates속성도 True..
> ***두번째 입력 부분
> 쿼리B이고 이부분은 DBGrid컴포로 있습니다.
> 새로운 자료 입력시는 Append를 시켜주고 DBGrid에서 직접 수정및 입력을 합니다..
> 쿼리B의 설정은 RequestLive는 True, CachedUpdates속성도 True..
> *****
> 위와 같은 상태에서 수정 및 삽입을 한후 저장 버튼을 누르게 되면 아래 코드가 실행되어
> 실제 데이터베이스에 기록이 되어야 하는데 쿼리A는 실제 데이터베이스에 기록이 되는데
> 쿼리B는 실제 데이터베이스에 반영이 전혀 되질 않습니다..
> 다시 말해 둘중에 하나만 실제 데이터베이스에 반영이 된다는 얘기이지요..
> 두개의 쿼리 컴포를 캐쉬한후 ApplyUpdates메소드로 실제 데이터베이스에 모두 반영이
> 되도록 할수 있는 방법은 없는지요.. 아래 소스 코드가 있으니 참고 하시고 답변 부탁드립니다.
> 추가로 수정및 삽입후 쿼리의 Post메소드는 사용하지 않았는데, 혹시 이것때문에 그런지요..
> 감사합니다..
> With 쿼리A do
> begin
> if Active then
> begin
> ApplyUpdates;
> end;
> end;
> With 쿼리B do
> begin
> if Active then
> begin
> ApplyUpdates;
> CommitUpdates;
> end;
> end;
>
>
이럴수가,, 제가 질문 하고 제가 답변을 올리네요..
원인은 다른데에 있는거네요.. CachedUpdates를 사용할때는 구지 Post를 해주질 않아도돼네요..
그런데 저같은 경우에는 쿼리A가 마스터로 쿼리B가 디테일로 되어 있어 이런 현상이 일어나더라구요...
그래서 마스터/디테일 관계를 그냥 해제를 했지요.. 그랬더니 돼더라구요..
그럼 수고들 하세요..