쿼리한 결과 값(fieldbyname('a_1'))을 가지고
다른 쿼리문(where a_1 = "'+fieldbyname('a_1')+'")을 작성하려고 하니까
문제가 있는 것 같아 결과값을 저장할 변수를 선언한후
변수를 이용하여 다른 쿼리를 작성 하였는데...
잘 안되더라구요
with dm.qry1,dm.qry2 do begin
close;
sql.clear;
mysql := 'select * from a order by a_1'
sql.add(mysql);
open;
while not eof do
begin
node1 := tree1.items.add(nil,fieldbyname('a_2').asstring);
//sTmp: 결과값을 임시 저장 변수
sTmp := fieldbyname('a_1').asstring;
// 다른 쿼리 작성
close;
sql.clear;
mysql := 'select * from b where a_1 = "'+sTmp+'" order by b_1'
sql.add(mysql);
open;
while not eof do
begin
node2 := tree1.items.add(node1,fieldbyname('a_2').asstring);
next;
end;
//
next;
end;
end;
어떻게 해야 하나요.........
저 역시 with문 사용에 문제가 있을 것이라고 생각합니다.
이 소스로 한번 실험해 보세요.
var
mysql : string;
sTmp : string;
node1, node2 : ttreenode;
begin
query1.SQL.Clear;
mysql := 'select * from a order by a_1';
query1.sql.Add(mysql);
query1.open;
while not query1.EOF do
begin
node1 := treeview1.Items.Add(nil, query1.fieldbyname('a_2').asstring);
sTmp := query1.fieldbyname('a_1').asstring;
mysql := 'select * from b where b.a_1 = '''+sTmp+''' order by b_1';
query2.sql.clear;
query2.sql.Add(mysql);
query2.open;
while not query2.eof do
begin
node2 := treeview1.items.addchild(node1, query2.fieldbyname('b_1').asstring);
query2.next;
end;
query2.close;
query1.next;
end;
end;
원하시던 답변인지 모르겠군요.
그럼 열심히 하세요...