Q&A

  • 고수님들 도와주세요(다중검색)
안녕하세요.고수님들 꾸벅.

다중검색을 하려고 하는데....

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 에서 할려고 하니 잘 안되네요./

꼭 좀 도와주세요.

감사합니다.



2  COMMENTS
  • Profile
    홍성락 2001.11.23 04:26
    delcho wrote:

    > 안녕하세요.고수님들 꾸벅.

    > 다중검색을 하려고 하는데....

    > 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;



  • Profile
    최성진 2001.11.23 04:23
    like절 이용해보세요..

    like에 관해서는 많이 있습니다.



    delcho wrote:

    > 안녕하세요.고수님들 꾸벅.

    > 다중검색을 하려고 하는데....

    > 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 에서 할려고 하니 잘 안되네요./

    > 꼭 좀 도와주세요.

    > 감사합니다.

    >