안녕하세요...매번 질문만 하네요...
아래 질문했던 내용인데...
인사마스터 테이블(AAA)이
SABUN(사원번호) - KEY값
IRUM(성명) ..... 의 구조로 되어 있습니다.
대출정보 테이블(BBB)은
SABUN(사원번호) - KEY 값
HOISU(대출회차) - KEY 값
WONK(원금) ..... 의 구조로 되어 있습니다.
대출정보 테이블을 이름순으로 정렬해서 UPDATE, DELETE, INSERT를
하려고 하거든요...
그런데, JOIN된 QUERY는 UPDATE가 안된다고 하더군요...
델파이 도움말을 보니까 Updating a read-only result set 이라는
항목에 TupdateSQL을 이용하면 가능하다고 해서 해보았는데
update,delete,insert 모두 key violation error가 나타납니다...
TQUERY의 property에 있는 SQL문에는 SELECT * FROM AAA AS A, BBB AS B
WHERE A.SABUN=B.SABUN 이라고 입력하고 TupdateSQL을 배치하여 연결하였습니다..
그리고, 버튼을 클릭하면 위 sql을 clear하고 아래 문장을 sql.add하여 넣고
query를 open합니다...
SELECT * FROM AAA AS A, BBB AS B WHERE A.SABUN=B.SABUN
ORDER BY IRUM, SABUN, HOIS
그런데 조회는 잘 되는데 update, delete, insert에서 모두 위 에러가 발생합니다...
한수 부탁드립니다...
> 안녕하세요...매번 질문만 하네요...
> 아래 질문했던 내용인데...
>
> 인사마스터 테이블(AAA)이
> SABUN(사원번호) - KEY값
> IRUM(성명) ..... 의 구조로 되어 있습니다.
>
> 대출정보 테이블(BBB)은
> SABUN(사원번호) - KEY 값
> HOISU(대출회차) - KEY 값
> WONK(원금) ..... 의 구조로 되어 있습니다.
>
> 대출정보 테이블을 이름순으로 정렬해서 UPDATE, DELETE, INSERT를
> 하려고 하거든요...
>
> 그런데, JOIN된 QUERY는 UPDATE가 안된다고 하더군요...
> 델파이 도움말을 보니까 Updating a read-only result set 이라는
> 항목에 TupdateSQL을 이용하면 가능하다고 해서 해보았는데
> update,delete,insert 모두 key violation error가 나타납니다...
>
> TQUERY의 property에 있는 SQL문에는 SELECT * FROM AAA AS A, BBB AS B
> WHERE A.SABUN=B.SABUN 이라고 입력하고 TupdateSQL을 배치하여 연결하였습니다..
> 그리고, 버튼을 클릭하면 위 sql을 clear하고 아래 문장을 sql.add하여 넣고
> query를 open합니다...
> SELECT * FROM AAA AS A, BBB AS B WHERE A.SABUN=B.SABUN
> ORDER BY IRUM, SABUN, HOIS
>
> 그런데 조회는 잘 되는데 update, delete, insert에서 모두 위 에러가 발생합니다...
> 한수 부탁드립니다...
안녕하세요. 까마귀입니다.
TQuery의 속성중에 Cached Updates 속성을 True로 줬는지 확인해보세요.
TUpdateSQL을 쓸때는 이 속성을 True로 줘야 합니다.
그리고, TUpdateSQL을 쓰더라도 만일 Join의 결과가 둘이상의 Table에서 나온것이면 UpdateSQL을 써도 불가능 합니다.
여기서의 결과는 결과셋의 구성 필드가 다른 Table에서 뽑아온것을 의미합니다.
위대한 단군혼이 살아있는 나라.... 대한민국.