안녕하십니까...
질문 하나 드려도 될까요?
테이블에 있는 field 의 값을 콤보박스에 넣고 싶습니다.
for 문을 돌리거나 아니면 while 을 돌려서...
**friend_list : 콤보박스
**q_friend : query
procedure TForm1.TabSheet2Show(Sender: TObject);
//var
//i : integer;
begin
friend_list.Items.Clear;
{ <-- for 문...주석처리
for i:=0 to q_friend.RecordCount-1 do
begin
friend_list.Items.Add(q_friend.Fields[1].AsString);
q_friend.Next;
end; } <-- for 문 주석처리 여기까지
q_friend.First;
while q_friend.eof do
begin
friend_list.items.add(q_friend.FieldByName('f_name').asstring);
q_friend.Next
end;
이렇게 하는데 계속 값이 이상하게 row 가 9개 있는데 값이 9번째 값으로 똑같이 콤보에 9번 반복되어서 나옵니다. 각 행값이 그대로 와야 하는데...
제가 뭘 잘못한건지요...
for문 보다는 while 문이 간단하니까 While 로 하시는게 좋을 것 같구여..
아래와 같이 해보세염.
while Not q_friend.eof do // <--- Not이 빠진것 같군여....
begin
friend_list.items.add(q_friend.Fields[1].AsString);
q_friend.Next
end;
그럼 수고하세염...
태균 wrote:
> 안녕하십니까...
> 질문 하나 드려도 될까요?
> 테이블에 있는 field 의 값을 콤보박스에 넣고 싶습니다.
> for 문을 돌리거나 아니면 while 을 돌려서...
> **friend_list : 콤보박스
> **q_friend : query
>
> procedure TForm1.TabSheet2Show(Sender: TObject);
> //var
> //i : integer;
> begin
> friend_list.Items.Clear;
> { <-- for 문...주석처리
> for i:=0 to q_friend.RecordCount-1 do
> begin
> friend_list.Items.Add(q_friend.Fields[1].AsString);
> q_friend.Next;
> end; } <-- for 문 주석처리 여기까지
> q_friend.First;
> while q_friend.eof do
> begin
> friend_list.items.add(q_friend.FieldByName('f_name').asstring);
> q_friend.Next
> end;
> 이렇게 하는데 계속 값이 이상하게 row 가 9개 있는데 값이 9번째 값으로 똑같이 콤보에 9번 반복되어서 나옵니다. 각 행값이 그대로 와야 하는데...
> 제가 뭘 잘못한건지요...