3개의 테이블(shop,item,trans)을 shop과 item을 마스터로 잡고 디테일에는 trans테이블로 설정했습니다.
******************************************************************************
With DM.Query1 DO begin
close;
sql.clear;
sql.Add('select trans.shop, trans.item, trans.disp, trans.price from shop, item, trans');
sql.Add('where trans.shop = shop.shop And trans.item=item.item');
Open;
end;
******************************************************************************
요렇게 ㅠ.ㅜ
연결에 성공하였으나...
디테일 테이블인 trans를 입력,수정,삭제 하려고 하면, Query1의 Dataset이
ReadOnly래요!
그러면, 디테일테이블의 입력,수정,삭제를 가능케 하려면,
마스터, 디테일의 조인(Join)을 다시 풀어줘야 하나요?
> 3개의 테이블(shop,item,trans)을 shop과 item을 마스터로 잡고 디테일에는 trans테이블로 설정했습니다.
> ******************************************************************************
> With DM.Query1 DO begin
> close;
> sql.clear;
> sql.Add('select trans.shop, trans.item, trans.disp, trans.price from shop, item, trans');
> sql.Add('where trans.shop = shop.shop And trans.item=item.item');
> Open;
> end;
> ******************************************************************************
> 요렇게 ㅠ.ㅜ
>
> 연결에 성공하였으나...
> 디테일 테이블인 trans를 입력,수정,삭제 하려고 하면, Query1의 Dataset이
> ReadOnly래요!
> 그러면, 디테일테이블의 입력,수정,삭제를 가능케 하려면,
> 마스터, 디테일의 조인(Join)을 다시 풀어줘야 하나요?
>
query에서 join을 걸면 그 query는 request가 True가 되지 않죠.
따라서 그 query로는 데이타를 읽어올 수만 있고 write를 할 수는 없습니다.
그렇지만.. 그렇다고 입력화면에서 입력을 못하시면 안되겠죠?
dataaccess component중에 UpdateSQL이라는 component가 있습니다.
그 component 갖다 놓으시고
join이 걸린 query의 property중 updateObject라는 속성에 updatesql을 선택하세요.
그리고 updatesql component를 더블 클릭하신후 왼쪽 상단에 자료가 입력되어야할 테이블명을 선택하시고 gettablefield버튼을 누리시면 테이블에 있는 모든 Field가 오른쪽리스트박스에 들어옵니다.
마지막으로 Generate SQL 해주시면 자동으로 insert, update, delete sql문이 들어옵니다.