Q&A

  • 데이타 삽입중에 에러가 발생합니다.T.T 고수님들 도와주세요
query insert작업을 하는데 계속 type mismatch in expression예외가 발생합니다.

도와주세요.

with query1 do

begin

close;

sql.clear;

sql.add('insert into "customer.db" ')

sql.add(' values(:c1,:c2,:c3,:c4,:c5,:c6)');

parambyname('c1').asinteger:=strtoint(edit1.text);

parambyname('c2').asstring:=edit2.text;

parambyname('c3').asstring:=maskedit1.text;

parambyname('c4').asstring:=edit3.text;

parambyname('c5').asstring:=maskedit2.text;

parambyname('c6').asinteger:=strtoint(edit4.text);

execsql;

sql.clear;

sql.add('select * from "customer.db" ');

open;

end;



참고로 연결된 db(paradox) 필드는 cno(short),cname(alpha),ctel(alpha),caddr(alpha),clicence(alpha),cpoint(short)로 되어 있습니다.

무엇때문에 타입이 안맞는건지 고수님들의 한수 가르침 부탁드립니다.

3  COMMENTS
  • Profile
    바사기몬 2000.10.15 23:00
    문자 필드에 숫자필드를 할당 하신거 같습니다...



    cpoint(alpha) <--- 6번째 필드 타입



    parambyname('c6').asinteger:=strtoint(edit4.text); <-- 숫자 대입







    델파이궁금이 wrote:

    > query insert작업을 하는데 계속 type mismatch in expression예외가 발생합니다.

    > 도와주세요.

    > with query1 do

    > begin

    > close;

    > sql.clear;

    > sql.add('insert into "customer.db" ')

    > sql.add(' values(:c1,:c2,:c3,:c4,:c5,:c6)');

    > parambyname('c1').asinteger:=strtoint(edit1.text);

    > parambyname('c2').asstring:=edit2.text;

    > parambyname('c3').asstring:=maskedit1.text;

    > parambyname('c4').asstring:=edit3.text;

    > parambyname('c5').asstring:=maskedit2.text;

    > parambyname('c6').asinteger:=strtoint(edit4.text);

    > execsql;

    > sql.clear;

    > sql.add('select * from "customer.db" ');

    > open;

    > end;

    >

    > 참고로 연결된 db(paradox) 필드는 cno(short),cname(alpha),ctel(alpha),caddr(alpha),clicence(alpha),cpoint(alpha)로 되어 있습니다.

    > 무엇때문에 타입이 안맞는건지 고수님들의 한수 가르침 부탁드립니다.

  • Profile
    델파이궁금이 2000.10.15 23:29
    바사기몬 wrote:

    > 문자 필드에 숫자필드를 할당 하신거 같습니다...

    >

    > cpoint(alpha) <--- 6번째 필드 타입

    >

    > parambyname('c6').asinteger:=strtoint(edit4.text); <-- 숫자 대입

    >

    >

    >

    > 델파이궁금이 wrote:

    > > query insert작업을 하는데 계속 type mismatch in expression예외가 발생합니다.

    > > 도와주세요.

    > > with query1 do

    > > begin

    > > close;

    > > sql.clear;

    > > sql.add('insert into "customer.db" ')

    > > sql.add(' values(:c1,:c2,:c3,:c4,:c5,:c6)');

    > > parambyname('c1').asinteger:=strtoint(edit1.text);

    > > parambyname('c2').asstring:=edit2.text;

    > > parambyname('c3').asstring:=maskedit1.text;

    > > parambyname('c4').asstring:=edit3.text;

    > > parambyname('c5').asstring:=maskedit2.text;

    > > parambyname('c6').asinteger:=strtoint(edit4.text);

    > > execsql;

    > > sql.clear;

    > > sql.add('select * from "customer.db" ');

    > > open;

    > > end;

    > >

    > > 참고로 연결된 db(paradox) 필드는 cno(short),cname(alpha),ctel(alpha),caddr(alpha),clicence(alpha),cpoint(alpha)로 되어 있습니다.

    > > 무엇때문에 타입이 안맞는건지 고수님들의 한수 가르침 부탁드립니다.





    바사기몬님 답변 감사드립니다.

    그런데 그 6번째 필드는 제가 타이핑 실수로 cpoint(alpha)로 한 것입니다.

    필드 cpoint short형으로 되어 있습니다.

    다시 한번 잘못된 부분이 있는지 type mismatch in expression 예외가 왜 발생하는지

    조언 부탁드립니다.



  • Profile
    parkisu 2000.10.16 02:14
    말씀하신 대로라면 혹 strtoint(edit1.text)에서 edit1에 빈문자나 숫자형태가 아닌 문자가 들어오는 것은 아닌지요. 그렇다면 strtointdef()함수를 쓰시면 될 것같은데





    델파이궁금이 wrote:

    > 바사기몬 wrote:

    > > 문자 필드에 숫자필드를 할당 하신거 같습니다...

    > >

    > > cpoint(alpha) <--- 6번째 필드 타입

    > >

    > > parambyname('c6').asinteger:=strtoint(edit4.text); <-- 숫자 대입

    > >

    > >

    > >

    > > 델파이궁금이 wrote:

    > > > query insert작업을 하는데 계속 type mismatch in expression예외가 발생합니다.

    > > > 도와주세요.

    > > > with query1 do

    > > > begin

    > > > close;

    > > > sql.clear;

    > > > sql.add('insert into "customer.db" ')

    > > > sql.add(' values(:c1,:c2,:c3,:c4,:c5,:c6)');

    > > > parambyname('c1').asinteger:=strtoint(edit1.text);

    > > > parambyname('c2').asstring:=edit2.text;

    > > > parambyname('c3').asstring:=maskedit1.text;

    > > > parambyname('c4').asstring:=edit3.text;

    > > > parambyname('c5').asstring:=maskedit2.text;

    > > > parambyname('c6').asinteger:=strtoint(edit4.text);

    > > > execsql;

    > > > sql.clear;

    > > > sql.add('select * from "customer.db" ');

    > > > open;

    > > > end;

    > > >

    > > > 참고로 연결된 db(paradox) 필드는 cno(short),cname(alpha),ctel(alpha),caddr(alpha),clicence(alpha),cpoint(alpha)로 되어 있습니다.

    > > > 무엇때문에 타입이 안맞는건지 고수님들의 한수 가르침 부탁드립니다.

    >

    >

    > 바사기몬님 답변 감사드립니다.

    > 그런데 그 6번째 필드는 제가 타이핑 실수로 cpoint(alpha)로 한 것입니다.

    > 필드 cpoint short형으로 되어 있습니다.

    > 다시 한번 잘못된 부분이 있는지 type mismatch in expression 예외가 왜 발생하는지

    > 조언 부탁드립니다.

    >