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ㅠ.ㅠ;;
문장에서 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ㅠ.ㅠ;;
>