Q&A

  • stack overflow에러의 원인은?
인터베이스+델6+윈98에서 플그램을 짜고 있슴다.

procedure TForm1.FindMember;
begin
  with FrmTable.QyWork do begin
       Close;
       sql.Clear;
       sql.Add('select * from tbmember');
       sql.Add('where (card_no like :p1) or (mb_name like :p2)');
       sql.Add('or (tel_no like :p1) or (pcs_no like :p1)');
       ParamByName('p1').AsString:= '%'+Edit1.Text;
       ParamByName('p2').AsString:= '%'+Edit1.Text+'%';
       Open;
       case RecordCount of
          0: ShowMessag('회원이 없어요~');
          1: //
          else
              //
       end;
  end;
end;

procedure TForm1.Edit1KeyPress(var Key: char);
begin
    if Key=#13 then begin
         Key:= #0;
         FindMember;
    end;
end;

위의 쿼리만 수행하면 스택오버플로어 에러가 납니다. 밑의 레코드카운트 부분이랑은 전혀 관계가 없구요. 에디트박스쪽에도 문제가 없는데....T.T
별 희한한 증상은 보네요. 아시는 분 도움 좀 주세요.
1  COMMENTS
  • Profile
    박성훈 2002.05.01 21:05


    안녕하세요.
    저두 똑같은 증상을 겪었습니다.
    제가 파악한 바로는 필드타입이 char로 되어 있기 때문에 일어나더군요.
    char타입을 varchar로 변경하셔야 합니다.
    아마두 도메인을 사용하지 않으셨다면 필드타입 바꾸시는데 시간이 걸릴 수도 있을겁니다.