델파이 왕초봅니당~~
뭐가 잘못인지 몰르겠어요..
쿼리를 겹쳐서 그러지 어떤지...
제가 하고픈건
+ 경제
- 금융
- 마케팅
+ 교육
- 음악
- 미술
이렇게 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;
> 델파이 왕초봅니당~~
>
> 뭐가 잘못인지 몰르겠어요..
> 쿼리를 겹쳐서 그러지 어떤지...
> 제가 하고픈건
>
> + 경제
> - 금융
> - 마케팅
> + 교육
> - 음악
> - 미술
>
> 이렇게 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;
>
>
>
>
>