Q&A

  • 다중검색방법을 알켜주세요.ㅠ.ㅠ
with query1 do

begin

close;

sql.clear;

sql.add('select code,name,sex, grade');

sql.add(' ,tall,mkg,handphone, mcount');

sql.add('from profile.db');

sql.add('where ');

sql.add('sex = :ttsex and');

sql.add(':agef>=cast(substring(jucode from 1 for 2) as integer) and ');

sql.add(':agee<=cast(substring(jucode from 1 for 2) as integer) ');

sql.add('order by name');

parambyname('ttsex').asstring := tsex;

parambyname('agef').asinteger := agebox1;

parambyname('agee').asinteger := agebox2;

open;

end;

위와 같이 쿼리을 했읍니다. sex하나만을 쿼리할때는 아무 문제가 없었거든요.

근데, jucode(주민번호)을 문자형으로 정의해서 substring과cast메소드을 써서 형변환을 시켜서 검색조건을 늘리니, 에러가 납니다. agebox1,2는 물론 integer이구요.

변수형에는 문제가 없는 것 같은데, 자꾸 agef가 없다구 에러가 납니다.

sql문법이 잘못됐는지, 아님 메소드을 잘못썼는지, 잘모르겠읍니다.

고수님들이 꼭 찝어서 가르쳐 주심 정말 감사하겠읍니다.

부탁합니다. Fㅠ.ㅠ;;



2  COMMENTS
  • Profile
    loke 2001.03.20 21:12
    sql.add('sex = :ttsex and');

    문장에서 and 다음에 공백을 한칸 주시죠^^

    이렇게 sql.add('sex = :ttsex and ');





    열심이 wrote:

    > with query1 do

    > begin

    > close;

    > sql.clear;

    > sql.add('select code,name,sex, grade');

    > sql.add(' ,tall,mkg,handphone, mcount');

    > sql.add('from profile.db');

    > sql.add('where ');

    > sql.add('sex = :ttsex and');

    > sql.add(':agef>=cast(substring(jucode from 1 for 2) as integer) and ');

    > sql.add(':agee<=cast(substring(jucode from 1 for 2) as integer) ');

    > sql.add('order by name');

    > parambyname('ttsex').asstring := tsex;

    > parambyname('agef').asinteger := agebox1;

    > parambyname('agee').asinteger := agebox2;

    > open;

    > end;

    > 위와 같이 쿼리을 했읍니다. sex하나만을 쿼리할때는 아무 문제가 없었거든요.

    > 근데, jucode(주민번호)을 문자형으로 정의해서 substring과cast메소드을 써서 형변환을 시켜서 검색조건을 늘리니, 에러가 납니다. agebox1,2는 물론 integer이구요.

    > 변수형에는 문제가 없는 것 같은데, 자꾸 agef가 없다구 에러가 납니다.

    > sql문법이 잘못됐는지, 아님 메소드을 잘못썼는지, 잘모르겠읍니다.

    > 고수님들이 꼭 찝어서 가르쳐 주심 정말 감사하겠읍니다.

    > 부탁합니다. Fㅠ.ㅠ;;

    >

  • Profile
    열심이 2001.03.20 21:58
    공백을 줬는데두 안돼네요^^;;

    뭐가 잘못됐는지^^;;

    loke wrote:

    > sql.add('sex = :ttsex and');

    > 문장에서 and 다음에 공백을 한칸 주시죠^^

    > 이렇게 sql.add('sex = :ttsex and ');

    >

    >

    > 열심이 wrote:

    > > with query1 do

    > > begin

    > > close;

    > > sql.clear;

    > > sql.add('select code,name,sex, grade');

    > > sql.add(' ,tall,mkg,handphone, mcount');

    > > sql.add('from profile.db');

    > > sql.add('where ');

    > > sql.add('sex = :ttsex and');

    > > sql.add(':agef>=cast(substring(jucode from 1 for 2) as integer) and ');

    > > sql.add(':agee<=cast(substring(jucode from 1 for 2) as integer) ');

    > > sql.add('order by name');

    > > parambyname('ttsex').asstring := tsex;

    > > parambyname('agef').asinteger := agebox1;

    > > parambyname('agee').asinteger := agebox2;

    > > open;

    > > end;

    > > 위와 같이 쿼리을 했읍니다. sex하나만을 쿼리할때는 아무 문제가 없었거든요.

    > > 근데, jucode(주민번호)을 문자형으로 정의해서 substring과cast메소드을 써서 형변환을 시켜서 검색조건을 늘리니, 에러가 납니다. agebox1,2는 물론 integer이구요.

    > > 변수형에는 문제가 없는 것 같은데, 자꾸 agef가 없다구 에러가 납니다.

    > > sql문법이 잘못됐는지, 아님 메소드을 잘못썼는지, 잘모르겠읍니다.

    > > 고수님들이 꼭 찝어서 가르쳐 주심 정말 감사하겠읍니다.

    > > 부탁합니다. Fㅠ.ㅠ;;

    > >