안녕하십니까?
귀하께서 원하시는 기능은 다음과 같이 하시면 됩니다.
그런데요, 너무 범위가 커서 제가 뭐라고 말씀을 드리기가
상당히 난해하군요. 아무튼 최선을 다해서 이야기를 해볼께요.
먼저 회원정보 및 대여정보 테이블 두개가 있어야 하고,
두 테이블 모두 회원번호라는 코드를 가지고 있고,
주키속성으로 해야 됩니다.
우선은 쿼리 컴포넌트 두개를 사용하세요.
하나는 회원정보용, 나머지 하나는 대여정보용.
회원정보용 쿼리 컴포넌트는 qeury1, 대여정보용은 query2라고 합시다.
query2의 SQL속성에 다음과 같이 코딩하세요.
select *
from 대여정보
where 1 = 2 ;
그리고나서 Active속성을 open하세요.
그리고나서 디비그리드를 더블클릭해서 필드를선택한후
title속성의 caption에다가 적당한 이름을 줍니다.
그러면 보기좋은 모양새있는 디비그리드가 되죠.
물론 데이터는 없습니다. (데이터가 없는것이 맞아요)
다 편집을 했으면 Active를 false로 하세요.(optional)
그런데, 디비그리드와 query2가 연결되어야 하니까,
데이터소스를 올려놓으세요.
그래서, 디비그리드의 datasource속성에 datasource1를 연결하시고요,
datasoure1의 dataset속성에 qeury2를 연결하세요.
확인버튼 클릭 이벤트
with query1 do
begin
close ;
sql.clear ;
sql.add('select *') ;
sql.add('from 회원정보') ;
sql.add('where 회원번호 = :hwonBunho') ;
parambyname('hwonBunho').asString := Trim(Edit1.Text)//회원번호입력박스
open ;
Edit2.Text := fieldbyname('주소').asstring ;
Edit3.Text := fieldbyname('이름').asString ; 등등
end ;
도서코드를 입력하겠죠.
대여버튼 클릭시
with query2 do
begin
close ;
sql.clear ;
sql.add('select *') ;
sql.add('from 대여정보') ;
sql.add('where 회원번호 = :hwonBunho') ;
sql.add('and 도서코드 = :bookcode') ;
parambyname('hwonBunho').asString := Trim(Edit1.Text) ;
parambyname('bookcode').asString := Trim(Edit8.Text); //도서코드입력
// 박스
open ;
end ;
위처럼 하시면 됩니다.
위의 예제는 단지 샘플일 뿐입니다.
보니까, 대여정보에는 회원번호 및 도서코드가 주키로 잡혀있는것이
좋을 것 같군요.
그럼, 도움이 되셨으면 합니다.