안녕하세요.고수님들 꾸벅.
다중검색을 하려고 하는데....
3개의 edit 박스가 있습니다.
a.text , b.text , c.text
조회버튼을 눌렀을때
위의 박스중 공백인 것들은 조회조건에 넣지 않으려고 합니다.
즉 3개의 박스가 모두 공백일 때는 전체 데이타가 나와야 되겠죠.
b.edit 가 공백이면 b.edit 를 제외한 데이타 즉
select * from test_table where name = a.text and num = c.text
이런식으로 데이타가 나와야 됩니다.
이건 너무나 당연한 일인데 잘 안되네요.
저는 sql 만 사용했었는데 그기에는 stored procedure 가 있어 쉽게 구현할 수 있었거든요. 그런데 로컬 db 에서 할려고 하니 잘 안되네요./
꼭 좀 도와주세요.
감사합니다.
> 안녕하세요.고수님들 꾸벅.
> 다중검색을 하려고 하는데....
> 3개의 edit 박스가 있습니다.
> a.text , b.text , c.text
> 조회버튼을 눌렀을때
> 위의 박스중 공백인 것들은 조회조건에 넣지 않으려고 합니다.
> 즉 3개의 박스가 모두 공백일 때는 전체 데이타가 나와야 되겠죠.
> b.edit 가 공백이면 b.edit 를 제외한 데이타 즉
> select * from test_table where name = a.text and num = c.text
> 이런식으로 데이타가 나와야 됩니다.
> 이건 너무나 당연한 일인데 잘 안되네요.
> 저는 sql 만 사용했었는데 그기에는 stored procedure 가 있어 쉽게 구현할 수 있었거든요. 그런데 로컬 db 에서 할려고 하니 잘 안되네요./
> 꼭 좀 도와주세요.
> 감사합니다.
////////////////////////////////////////////////////////////
좀 무식하게 했었거든요.
StrSQL := '';
if a.text <> then StrSQL := StrSQL + 'and (name = ''' + a.text +''') ';
if b.text <> then StrSQL := StrSQL + 'and (addr = ''' + b.text +''') ';
if c.text <> then StrSQL := StrSQL + 'and (num = ''' + c.text +''') ';
if StrSQL <> '' then
StrSQL := ' where ' + copy(StrSQL, 4, length(StrSQL)); //4부터란 and문자 지움
StrSQL := 'select * from test_table ' + StrSQL;
-------------------------------------------------------------
with Q do begin
if Active then Close;
SQL.Clear;
SQL.Add(StrSQL);
Prepare;
Open;
First;
result := RecordCount;
end;