Q&A

  • SQL 소스의 실행 이상 원인을 찾아주세요. (파라미터(Parameter) 사용)
고수님들 안뇽하시가여... 초보 허접 사발임당.... 아래의 소스를 보심 알겠지만여



공정코드 ,제품명 ,날짜 이렇게 3가지의 조건이 있는디여..



각각의 조건의로 검색이 가능 해야하구여...



예)공정코드+날짜

제품명+날짜

공정코드+제품명+날짜

날짜





위의 예에서와 같이 4가지의 검색이 가능 해야함당. ㅠ.ㅠ



그런디 아래의 소스를 도리면 4가지중 날짜 밖에는 검색이 안됨당....ㅠ.ㅠ



이구 이구 왜이런일이......헐.... 고수님들 도와 주이소 지발 ㅠ.ㅠ



if combobox1.Text='%' then

w:='and 공정코드='+s;

if combobox3.Text='%' then

w:='and 제품명='+combobox3.Text;

if (combobox1.Text='%') and (combobox3.Text='%') then

w:='and 공정코드='+s+'and 제품명='+combobox3.Text;



with query1 do

begin

close;

sql.Clear;

sql.Add('select 순번,제품명,고객명,검사수량,합격수량,불량수량,조처결과,검사결과,검사일자,검사자 from 검사명세');

sql.Add('where 검사일자 between :now1 and :now2'+w);

parambyname('now1').asdatetime:=datetimepicker1.Date;

parambyname('now2').asdatetime:=datetimepicker2.Date;

open;

end;

3  COMMENTS
  • Profile
    윤유섭 2000.08.22 04:12
    소스에 약간의 문제가 있는듯....

    if combobox1.Text='%' then

    w:='and 공정코드='+s;

    --> 공정코드가 Char, VarChar형이면

    --> w := 'and 공정코드 = ''' + S + ''''; S좌우로 '를 묶어줘야 할것 같습니다.



    if combobox3.Text='%' then

    w:='and 제품명='+combobox3.Text;

    --> 잘 이해가 안되는데 제품명에 '%'란것이 있나요

    --> 그래로 해석해보념 W라는 변수에 들어가는 값은

    --> and 제품명 = %가 되는데 뭔가 잘못된 부분인것 같습니다.



    if (combobox1.Text='%') and (combobox3.Text='%') then

    w:='and 공정코드='+s+'and 제품명='+combobox3.Text;



    --> 또한 테스트는 안해봤지만

    --> 검사일자 Between A and B부부을 (검사일자 Between A and B)로 괄호로

    --> 묶어보세요





    사발우성 wrote:

    > 고수님들 안뇽하시가여... 초보 허접 사발임당.... 아래의 소스를 보심 알겠지만여

    >

    > 공정코드 ,제품명 ,날짜 이렇게 3가지의 조건이 있는디여..

    >

    > 각각의 조건의로 검색이 가능 해야하구여...

    >

    > 예)공정코드+날짜

    > 제품명+날짜

    > 공정코드+제품명+날짜

    > 날짜

    >

    >

    > 위의 예에서와 같이 4가지의 검색이 가능 해야함당. ㅠ.ㅠ

    >

    > 그런디 아래의 소스를 도리면 4가지중 날짜 밖에는 검색이 안됨당....ㅠ.ㅠ

    >

    > 이구 이구 왜이런일이......헐.... 고수님들 도와 주이소 지발 ㅠ.ㅠ

    >

    > if combobox1.Text='%' then

    > w:='and 공정코드='+s;

    > if combobox3.Text='%' then

    > w:='and 제품명='+combobox3.Text;

    > if (combobox1.Text='%') and (combobox3.Text='%') then

    > w:='and 공정코드='+s+'and 제품명='+combobox3.Text;

    >

    > with query1 do

    > begin

    > close;

    > sql.Clear;

    > sql.Add('select 순번,제품명,고객명,검사수량,합격수량,불량수량,조처결과,검사결과,검사일자,검사자 from 검사명세');

    > sql.Add('where 검사일자 between :now1 and :now2'+w);

    > parambyname('now1').asdatetime:=datetimepicker1.Date;

    > parambyname('now2').asdatetime:=datetimepicker2.Date;

    > open;

    > end;













  • Profile
    사발우성 2000.08.22 03:41
    ^^ 님 답변 감사감사...



    아래의 S는 스트링형임당..^^



    '%' 이거 어떤문자가 있다는 표시 아닌가여 ^^



    지가 워낙 초보라서리...^^



    다른 것두 이런식으로 했는디 별문제 없었는디..^^



    암튼 답변감솨여 ^^



  • Profile
    이진우 2000.08.22 04:12
    사발우성 wrote:

    > 고수님들 안뇽하시가여... 초보 허접 사발임당.... 아래의 소스를 보심 알겠지만여

    >

    > 공정코드 ,제품명 ,날짜 이렇게 3가지의 조건이 있는디여..

    >

    > 각각의 조건의로 검색이 가능 해야하구여...

    >

    > 예)공정코드+날짜

    > 제품명+날짜

    > 공정코드+제품명+날짜

    > 날짜

    >

    >

    > 위의 예에서와 같이 4가지의 검색이 가능 해야함당. ㅠ.ㅠ

    >

    > 그런디 아래의 소스를 도리면 4가지중 날짜 밖에는 검색이 안됨당....ㅠ.ㅠ

    >

    > 이구 이구 왜이런일이......헐.... 고수님들 도와 주이소 지발 ㅠ.ㅠ

    >

    > if combobox1.Text='%' then

    > w:='and 공정코드='+s;

    > if combobox3.Text='%' then

    > w:='and 제품명='+combobox3.Text;

    > if (combobox1.Text='%') and (combobox3.Text='%') then

    > w:='and 공정코드='+s+'and 제품명='+combobox3.Text;

    >

    > with query1 do

    > begin

    > close;

    > sql.Clear;

    > sql.Add('select 순번,제품명,고객명,검사수량,합격수량,불량수량,조처결과,검사결과,검사일자,검사자 from 검사명세');

    > sql.Add('where 검사일자 between :now1 and :now2'+w);

    > parambyname('now1').asdatetime:=datetimepicker1.Date;

    > parambyname('now2').asdatetime:=datetimepicker2.Date;

    > open;

    > end;





    안녕하세요! 접니다..

    조건은 다 맞는 것 같네요...!

    근데 parambyname을 쓰신 후 검색조건이 잘못 된 것 같네요! ^_^!



    sql.Add('where 검사일자=:>now1 and 검사일자=:


    이런식으로 해보세요! 맞나 모르겠네요!



    ------------------------------------------------

    **** parambyname쓰실 때 주의사항 ****

    ------------------------------------------------

    := (틀림) =:(맞음)

    필드와 =: 사이에는 공백이 없어야 됩니다...

    ------------------------------------------------

    그럼 20000

    즐코 하세여!