Q&A

  • Query 와 DBGrid 부탁을...
-> 제가 잘 몰라서요...부탁을

-> 지금 처리해야되는 부분인데 잘안되더군요..



< 순서 >



Query문 ......(Query1)

// select a.box1, a.box2, b.box1, b.box2

// from box_a a, box_b b

// where a.order=b.order

// 자료는 모두 5개 이중 중복된 자료는 없슴



-> Query 결과값

a.box1 a.box2 b.box1 b.box2

------------------------------

1 111 a 1a

2 222 b 2a

3 333 c 3a

4 444 d 4a

5 555 e 5a





while(aset) 문 또는 For문

{

// DBGrid내의 셀에 위 Query문의 원하는 필드값을 한행씩 증가시켜 넣어줌

// 이부부분에서 a,b,c,d를 넣어주고



DBGrid1...('a.box1').... := Query1.FieldByName('a.Box1').AsString;

DBGrid1...('a.box2').... := Query1.FieldByName('a.Box2').AsString;

DBGrid1...('b.box1').... := Query1.FieldByName('b.Box1').AsString;

DBGrid1...('b.box2').... := Query1.FieldByName('b.Box2').AsString;



// 이 부분에서 DBGrid에 자료를 넣어주는 방법



// Query문 ... <첫번째 Query문에서 a.box1의 값을 가져와서>



select name, code from box_c where box_c='xxx'

// 이 부분에서 xxx는 첫번째 Query문에서 가져온 a.box1의 값

// 이 부분을 처리하는 목적은 첫번째 쿼리문(box_a table)에서 가져온

// a.box1의 값은 하나지만

// 두번째 쿼리문(box_c table)에서 가져온 값은 두개이상일수가 있으므로



-> Query 결과값

name code (a.box1)

--------------------------

aa 111 1

bb 222 1

cc 333 2

dd 444 3

ee 555 4

ff 666 4

gg 777 4

hh 888 5



// 이부분에서 a.box1이 중복된 자료는

// 하나의 셀안에 하나의 스트링값으로 넘겨주면되고,

// 중복되지 않은 자료는 그값만 넘겨주면 됩니다.

name code (a.box1)

--------------------------

aabb 111222 1

cc 333 2

dd 444 3

eeffgg 555666777 4

hh 888 5



// 위 자료를 처리하는 부분

while(bset) 문 또는 For문

{

// 조건문이 들어가야 되겠고,,

DBGrid1...('name').... := Query1.FieldByName('a.Box1').AsString;

DBGrid1...('code').... := Query1.FieldByName('a.Box2').AsString;

}



// 윗부분이 끝나고 나면 나머지 필드들을 DBGrid1에 넣어주고 하나의 Row값이 나옴



a.box1 a.box2 b.box1 b.box2 name code

-------------------------------------------------

1 111 a 1a aabb 111222

}



윗부분의 루프가 다끝나고 나면 전체데이타가 출력됨



a.box1 a.box2 b.box1 b.box2 name code

----------------------------------------------------

1 111 a 1a aabb 111222

2 222 b 2a cc 333

3 333 c 3a dd 444

4 444 d 4a eeffgg 555666777

5 555 e 5a hh 888





// 위 루프상으로는 처리가 가능한것 같은데

// 구현이 잘안되더라구요..

// 부탁을........*.*



0  COMMENTS