procedure TForm4.Button1Click(Sender: TObject);
var
val01 : string;
begin
if cbxemp01.text='성' then
val01:='select * from s_emp where last_name = :valu02 '
else if cbxemp01.text='이름' then
val01:='select * from s_emp where first_name = :valu02 '
else if cbxemp01.text='직책' then
val01:='select * from s_emp where title = :valu02 '
else if cbxemp01.text='전체' then
val01:='select * from s_emp'
else
showmessage('조건을 선택해 주세요');
empqry01.close;
empqry01.SQL.Clear;
empqry01.SQL.Add(val01);
empqry01.Parambyname('valu02').asstring:=emptxt.text;
empqry01.open;
end;
라고 코딩을 했습니다.
cbxemp01 은 콤보박스구요
emptxt 는 edit 입니다.
콤보박스에서 colum 명을 정하고
edit 값을 넣으면 조회 되는 것입니다.
버그는
콤보바스에서 전체로 선택하고 바로 버튼을 클릭 하게 되면
에러가 발생 합니다.
null 값일때 valu02 가 '' 라고 해주면 될것 같은데..
코딩을 해보면 계속해서 에러가 발생 하네요.
valu02 라는 파라메터가 들어가지 않는데 Sql은 고정이 되어 있군요. 그래서 당연히 Sql 이 에러가 나는 거구요. 이렇게 바꾸어 보셨으면 합니다.
else if cbxemp01.text='전체' then
val01:='select * from s_emp'
else
showmessage('조건을 선택해 주세요');
empqry01.close;
empqry01.SQL.Clear;
empqry01.SQL.Add(val01);
--> 조건절 삽입
if cbxemp01.text<>'전체' then
empqry01.Parambyname('valu02').asstring:=emptxt.text;
이게 맞나...애구 일단 이렇게 함 해보세요. 그럼