2012-11-28 3 views
1

질문 제목이 명확하면 잘 모릅니다. 언제든지 편집 해주십시오.DB grid : 현재 행의 열을 다른 행의 인덱스로 사용하는 방법?

기본적으로 두 개의 DB 테이블을 반영하는 두 개의 DB 그리드가 있으며 각 그리드에는 하나씩 표시됩니다.

첫 번째 표의 행을 선택하면 (oders이라고합시다) 첫 번째 표의 선택한 행의 열과 일치하는 행의 세부 정보로 두 번째 표를 업데이트하려고합니다.

말은, 예를 들어 해당 테이블 orders이 열 customer_id을 가지고 있는데이 두 번째 테이블을 채우는 원하는 고객, 행 당 하나의 순서에서 모든 주문의 세부 사항 (의이 order_details를 부르 자).

2 개의 데이터 소스, 쿼리 및 두 개의 TDbGrid에 대한 연결을 연결할 수 있지만 order_details을 코딩하는 방법에 관해서는 고민하고 있습니다.

orders의 SQL은 단지 SELECT * from orders이지만 다른 하나는?

내가 SELECT * from order_details WHERE cutomer_id=<orderQuery>.currentRow.FieldByName("customer_id").AsInteger 같은 것을 원하는 -하지만 난 그렇게하는 방법을 모른다 ...

사람이 어떤 델파이 코드를 좀 도와 줄래?

또한 해당 관계를 설정하면 orders DB 그리드에서 새 행을 선택하면 order_details DB 그리드가 자동으로 업데이트됩니까? 아니면 코드를 추가해야합니까?

P.s 나는 더 이상 books 태그가 없다는 것을 알고 있습니다. (더 많은 연민이 있습니다.) 누군가가 DB 인식 컨트롤 프로그래밍의 기본을 설명하는 좋은 책을 추천 할 수 있습니까? 나는 분명히 그것을 필요로한다.

SELECT * FROM Order_Details od WHERE od.CustomerID = :CustomerID 

그런 다음 아이 쿼리의 MasterSource 부모 (Order) 데이터 소스를 설정하고 CustomerIDMasterFields : 감사

+3

이 주제에 대한 마스터 세부 관계 및 ['here's'] (http://delphi.about.com/od/database/l/aa071001a.htm) 자습서라고합니다. 어쩌면 ['이 부분'] (http://delphi.about.com/od/database/l/aa071001c.htm)이 아마도 당신에게 흥미로울 수도 있습니다. – TLama

+2

도서 추천서에서 그 질문은 주제와 관련이 없습니다. 이것은 책 소개 엔진이 아닙니다. 그러나, 예를 들어 [Cantú] (http://www.marcocantu.com)의 오래된 책들 중 대부분은 데이터베이스 프로그래밍에 대한 장을 가지고있어서 대부분의 델파이 버전에서 매우 유용한 참고서입니다. –

답변

4

은 세부 사항 (하위) 데이터베이스에 대한 매개 변수화 된 쿼리를 사용합니다. (이 둘을 연결 여러 열이있는 경우, CustomerID;OrderNumber 같이 ;으로 구분합니다.)

상위 (부모 DBGrid를에서 선택한 레코드를 변경)을 스크롤 할 때마다, 하위 쿼리가 함께 실행됩니다 매개 변수로 자동 전달 된 상위 행의 ID입니다.

+0

이 답변을 수여 한 이래로 시간이 지났습니다. 사실 저는 이것을 수동으로 구현했습니다. 마스터의 OnClick() 핸들러에서 같은 결과를 나타내는 "salve"쿼리의 매개 변수를 설정합니다. 이 질문에 대해 다시 생각해 보겠습니다. 여러분의 의견대로'MasterSource' 속성이 있지만'MasterField'는 없습니다 (AnyDac을 사용하는 Delphi XE2 초보자 용 버전) – Mawg

+0

죄송합니다. AnyDac을 사용하지 않으며 위 질문에 아무것도 없거나 사용중인 태그가 없습니다.그들의 문서는'MasterSource'에 대해 무엇이라고 말합니까? 또한 어떤 DBMS를 사용하고 있는지 언급하지 않았으므로 사용중인 쿼리 구성 요소를 모르므로 시도해 볼 수도 없습니다. –

+0

그들의 [documentation] (http://www.da-soft.com/anydac/docu/uADCompDataSet_TADDataSet.html)에 따르면'TADDataSet'에는 실제로 'MasterFields' 속성이 포함되어 있으며 위에서 설명한대로 사용됩니다. –