Q&A

  • [재질문] 날짜 비교 해서 DBGrid에 뿌려주는게 잘 안됩니다.????
var first_date, second_date :tdate;



begin

first_date := strtodate(edit1.text);

second_date := strtodate(edit2.text);



query2.sql.clear;



-> query2.SQL.Add('select * from home');

-> query2.SQL.Add('where 날짜 < '''+first_date+'''

and 날짜 > '''+second_date+''' ');



위에처럼 수정을 해서 컴파일을 하면 아래처럼 에러가 납니다.

혹시 DB마다 틀린것인지...???? 아니면 또 다른 실수를 한것인지 모르겠습니다.

혹시 데이터 선언 부분을 잘못한건가요..???

고수님들 꼭좀 부탁 드리겠습니다.



[Error] SMD.PAS(105): Incompatible types:'String' and 'TDate'

[Error] SMD.PAS(105): Incompatible types

2  COMMENTS
  • Profile
    ^_^ 2001.10.09 01:24
    날짜 형식이 일치하지 않아 그럴수도 있습니다.

    가령 날짜표시 형식은

    보통 yyyy-mm-dd 00:00:00

    yyyy-mm-dd tt 00:00:00..

    등 각 pc마다 날짜 표시형식이 틀릴 경우가 있습니다.

    만약 위의 내용이라면 틀린 조건으로 쿼리를 돌릴 경우 나오지 않을수도 있습니다.

    그러니 날짜형식을 확인 후 형식에 맞게 날짜 포멧을 해주면 될것입니다.



    그리고 어느 기간을 돌릴시 between 문으로 하면 될 것 같군요.



    그리고 아래의 first_date := strtodate(edit1.text); 보아하니

    아마 이것땜시 에러 일수도 있습니다. 날짜를 형식의 변수를 ㅡ.ㅡ;;

    문자열 형식으로 검색을 해서 아마 에러가 난것 같습니다...

    이렇게 해서 함 고쳐보세여.. 지금 어깨가 아파소.. ㅡ.ㅡ;;

    정리가 잘 안되는 군여... 즐푸 하시길..



    first_date := strtodate(edit1.text);

    second_date := strtodate(edit2.text);



    qry_str := 'select * from home (with nolock) where 날짜 :fist_date and :second_date'





    with query2 do begin

    close;

    sql.clear;

    sql.add(qry_Str);

    parambyname('fist_date').asdate := fitst_date;

    parambyname('second_date').asdate := second_date;

    open;

    end;





    정규성 wrote:

    > var first_date, second_date :tdate;

    >

    > begin

    > first_date := strtodate(edit1.text);

    > second_date := strtodate(edit2.text);

    >

    > query2.sql.clear;

    >

    > -> query2.SQL.Add('select * from home');

    > -> query2.SQL.Add('where 날짜 < '''+first_date+'''

    > and 날짜 > '''+second_date+''' ');

    >

    > 위에처럼 수정을 해서 컴파일을 하면 아래처럼 에러가 납니다.

    > 혹시 DB마다 틀린것인지...???? 아니면 또 다른 실수를 한것인지 모르겠습니다.

    > 혹시 데이터 선언 부분을 잘못한건가요..???

    > 고수님들 꼭좀 부탁 드리겠습니다.

    >

    > [Error] SMD.PAS(105): Incompatible types:'String' and 'TDate'

    > [Error] SMD.PAS(105): Incompatible types

  • Profile
    델 초보(아줌마) 2001.10.09 01:14
    정규성 wrote:

    > var first_date, second_date :tdate;

    >

    > begin

    > first_date := strtodate(edit1.text);

    > second_date := strtodate(edit2.text);

    >

    > query2.sql.clear;

    >

    > -> query2.SQL.Add('select * from home');

    > -> query2.SQL.Add('where 날짜 < '''+first_date+'''

    > and 날짜 > '''+second_date+''' ');

    >

    > 위에처럼 수정을 해서 컴파일을 하면 아래처럼 에러가 납니다.

    > 혹시 DB마다 틀린것인지...???? 아니면 또 다른 실수를 한것인지 모르겠습니다.

    > 혹시 데이터 선언 부분을 잘못한건가요..???

    > 고수님들 꼭좀 부탁 드리겠습니다.

    >

    > [Error] SMD.PAS(105): Incompatible types:'String' and 'TDate'

    > [Error] SMD.PAS(105): Incompatible types



    에러메세지 내용은. 날짜라고 되어 있는 필드가 String형으로 되어 있고 First_Date와 Second_Date가 그냥 문자열이기 때문에 에러가 나는 것입니다.



    아니면.. 그 반대일수도 있구요 ^^