Q&A

  • 질문]쿼리때문에T.T 도와주세요~~
델파이 왕초봅니당~~



뭐가 잘못인지 몰르겠어요..

쿼리를 겹쳐서 그러지 어떤지...

제가 하고픈건



+ 경제

- 금융

- 마케팅

+ 교육

- 음악

- 미술



이렇게 TreeView로 보여주는건데



테이블이



CREATE TABLE NFRALOC.TS_INTEREST (

C_INTINDEX NUMBER(38, 0) NOT NULL,

C_INTEREST VARCHAR2(30) NOT NULL,

C_PARENT NUMBER(38, 0) NOT NULL

)



경제랑 교육은 c_parent가 0 금융, 마케팅의 c_parent는 경제의 c_iniindex값과 같고

음악, 미술의 c_parent는 교육의 c_iniindex값과 같습니다.

subitem이 없을 수도 있구요...

뭐가 잘못인지 자꾸 쿼리에러가 납니다..

도와주세요..벌써 며칠째이러고 있답니다!!!





//TabSheet7 관심분야

try

Interest_query.DatabaseName := 'nfraTool';

Interest_sub_query.DatabaseName := 'nfraTool';

Interest_query.Close;

Interest_query.SQL.Clear;

Interest_query.SQL.Add('Select c_intindex, c_interest, c_parent from TS_INTEREST');

Interest_query.Open;

Interest_query.Last;

Interest_query.First;

Max := Interest_query.RecordCount;

for i:= 0 to Max-1 do

begin

type_value := Interest_query.FieldByName('c_parent').AsString;

type_value2 := Interest_query.FieldByName('c_interest').AsString;

if type_value = '0' then

begin

node := TreeView1.Items.Add(Treeview1.Selected,type_value2);

j := interest_query.fieldByName('c_intindex').AsInteger;



Interest_sub_query.Close;

Interest_sub_query.SQL.Add('Select c_interest from TS_INTEREST');

Interest_sub_query.SQL.Add('Where c_parent = :c_parent');

Interest_Sub_query.ParamByName('c_parent').AsInteger := j;

Interest_sub_query.Open;

// 우선 c_parent값부터 찍어보자

if Interest_sub_query.RecordCount > 0 then

treeview1.items.addchild(node,inttostr(j))

else

treeview1.items.addchild(node,inttostr(0));





end; //begin

Interest_sub_query.free;

Interest_query.Next;

end; //begin

finally

Interest_query.free;

end; //try



end;











2  COMMENTS
  • Profile
    아폴론 2001.05.03 21:20
    hlpark wrote:

    > 델파이 왕초봅니당~~

    >

    > 뭐가 잘못인지 몰르겠어요..

    > 쿼리를 겹쳐서 그러지 어떤지...

    > 제가 하고픈건

    >

    > + 경제

    > - 금융

    > - 마케팅

    > + 교육

    > - 음악

    > - 미술

    >

    > 이렇게 TreeView로 보여주는건데

    >

    > 테이블이

    >

    > CREATE TABLE NFRALOC.TS_INTEREST (

    > C_INTINDEX NUMBER(38, 0) NOT NULL,

    > C_INTEREST VARCHAR2(30) NOT NULL,

    > C_PARENT NUMBER(38, 0) NOT NULL

    > )

    >

    > 경제랑 교육은 c_parent가 0 금융, 마케팅의 c_parent는 경제의 c_iniindex값과 같고

    > 음악, 미술의 c_parent는 교육의 c_iniindex값과 같습니다.

    > subitem이 없을 수도 있구요...

    > 뭐가 잘못인지 자꾸 쿼리에러가 납니다..

    > 도와주세요..벌써 며칠째이러고 있답니다!!!

    >

    >

    > //TabSheet7 관심분야

    > try

    > Interest_query.DatabaseName := 'nfraTool';

    > Interest_sub_query.DatabaseName := 'nfraTool';

    > Interest_query.Close;

    > Interest_query.SQL.Clear;

    > Interest_query.SQL.Add('Select c_intindex, c_interest, c_parent from TS_INTEREST');

    > Interest_query.Open;

    > Interest_query.Last;

    > Interest_query.First;

    > Max := Interest_query.RecordCount;

    > for i:= 0 to Max-1 do

    > begin

    > type_value := Interest_query.FieldByName('c_parent').AsString;

    > type_value2 := Interest_query.FieldByName('c_interest').AsString;

    > if type_value = '0' then

    > begin

    > node := TreeView1.Items.Add(Treeview1.Selected,type_value2);

    > j := interest_query.fieldByName('c_intindex').AsInteger;

    ==========아래처럼 바꿔보세요=========================

    with Interest_sub_query do begin>

    > Close;

    SQL.clear;

    > SQL.Add('Select c_interest from TS_INTEREST');

    > SQL.Add('Where c_parent = :p_parent');

    > ParamByName('p_parent').AsInteger := j;

    > Open;

    if while not eof do begin

    > treeview1.items.addchild(node,inttostr(0));

    > Next;

    end;

    end;

    ====================================================

    >

    > end; //begin

    > Interest_sub_query.free;

    > end; //begin

    > finally

    > Interest_query.free;

    > end; //try

    >

    > end;

    >

    >

    >

    >

    >

  • Profile
    hlpark 2001.05.03 21:52