Q&A

  • type mismatch in ex....제발..1시간째...
안녕하세요..

1시간째 요거 잡느냐구..ㅡㅡ;;

부탁합니다..흘흘..

어디가 에러났는지 나타나지두 않고

그냥 type mismatch in experrexx 납니다..ㅡ.ㅡ;;

with frm_main.query do begin

close;

sql.clear;

sql.add('insert into bipum');

sql.add('(adate,name,number,model,price,quantity,unit,howtake,state,nowuse,beforuse,remain,comment,bigo)');

sql.add('values');

sql.add('(:adate,:name,:number,:model,:price,:quantity,:unit,:howtake,:state,:nowuse,:beforuse,:remain,:comment,:bigo)');

parambyname('adate').asstring:=datetostr(dtp.Date);

parambyname('name').asstring:=edit_name.text;

parambyname('number').asstring:=edit_number.text;

parambyname('model').asstring:=edit_model.text;

parambyname('price').asinteger:=strtoint(edit_price.text);

parambyname('quantity').asinteger:=strtoint(edit_quantity.text);

parambyname('unit').asstring:=Table.FieldByName('unit').asstring;

parambyname('howtake').asstring:=edit_howtake.text;

parambyname('state').asinteger:=0;

parambyname('nowuse').asinteger:=Table.FieldByName('nowuse').asinteger;

parambyname('beforuse').asinteger:=0;

parambyname('remain').asinteger:=Table.FieldByName('remain').asinteger;

parambyname('comment').asstring:=memo_comment.Text;

parambyname('bigo').asstring:=edit_bigo.text;

execsql;

open;

end;

4  COMMENTS
  • Profile
    성필 2001.08.03 23:27
    답변해 주셔서 감사합니다.

    하나씩 대입하면서 mismatch 부분을 찾고, 형식을 몇 번 바꾼 결과 성공했습니다..^^

    (^^) (__) (^^)

    그런데..

    Error creating cursor handle

    이라고 나오네요..ㅡㅡ;;

    자료입력은 잘되는데 저런메세지가..헐헐



  • Profile
    김정선 2001.08.04 04:17
    쿼리문에서 SELECT 를 제외하고는 마지막에 ExecSQL 을 사용합니다..



    그런데..님의 소스 마지막에



    ExecSQL;

    Open;



    이라고 되어 있네요..



    이것 때문일거 같은데 한번 수정해 보세요..

  • Profile
    좋은날 2001.08.03 23:08
    성필 wrote:

    > 안녕하세요..

    > 1시간째 요거 잡느냐구..ㅡㅡ;;

    > 부탁합니다..흘흘..

    > 어디가 에러났는지 나타나지두 않고

    > 그냥 type mismatch in experrexx 납니다..ㅡ.ㅡ;;

    > with frm_main.query do begin

    > close;

    > sql.clear;

    > sql.add('insert into bipum');

    > sql.add('(adate,name,number,model,price,quantity,unit,howtake,state,nowuse,beforuse,remain,comment,bigo)');

    > sql.add('values');

    > sql.add('(:adate,:name,:number,:model,:price,:quantity,:unit,:howtake,:state,:nowuse,:beforuse,:remain,:comment,:bigo)');

    > parambyname('adate').asstring:=datetostr(dtp.Date);

    > parambyname('name').asstring:=edit_name.text;

    > parambyname('number').asstring:=edit_number.text;

    > parambyname('model').asstring:=edit_model.text;

    > parambyname('price').asinteger:=strtoint(edit_price.text);

    > parambyname('quantity').asinteger:=strtoint(edit_quantity.text);

    > parambyname('unit').asstring:=Table.FieldByName('unit').asstring;

    > parambyname('howtake').asstring:=edit_howtake.text;

    > parambyname('state').asinteger:=0;

    > parambyname('nowuse').asinteger:=Table.FieldByName('nowuse').asinteger;

    > parambyname('beforuse').asinteger:=0;

    > parambyname('remain').asinteger:=Table.FieldByName('remain').asinteger;

    > parambyname('comment').asstring:=memo_comment.Text;

    > parambyname('bigo').asstring:=edit_bigo.text;

    > execsql;

    > open;

    > end;



    parambyname('adate').asstring:=datetostr(dtp.Date);

    위의 부분을 아래와 같이 바꿔보세요...

    parambyname('adate').asstring:=FormatDateTime('YYYYMMDD', dtp.Date);

    'adate'필드가 스트링으로 된거 같은데 하이픈을 포함한 스트링이라면...'YYYY-MM-DD'로

    주시면 되겠네요...



  • Profile
    김정선 2001.08.03 22:50
    입력 필드를 하나 하나씩 늘려가면서 해 보십시요..



    디비가 뭐에 따라서 인티저 타입이나 날짜 타입을 조금 다르게 줘야지만



    저장될때가 있더라구요..



    AsFloat, AsSmallInt 등등..



    주로 숫자, 날짜 필드를 하나하나씩 늘려가면서 해 보십시요...