Q&A

  • 도저히 모르겠다....
아래 소스가 왜 type mismatch가 날까요?

db는 파라독스입니다.

삽입되는 파라미터 순서랑 table의 필드순서는 완전히 똑같아서

테이블다음에 필드는 생략해도 무방할 것 같구요...



아래 내용을 sql explorer에서 하면 에러가 안나거든요...

도저히 이유를 모르겠네요...



type mismatch???????



close;

sql.clear;

sql.add('insert into table1.db');

sql.add('values(:hamrno,:nalja,:dong,:ho,:power,:gas,:sudo,:onsu,:calory)');

parambyname('hamrno').asinteger:=strtoint(tempstring);

parambyname('nalja').asstring:=formatdatetime('YYYY-MM-DD',Now);

parambyname('dong').asstring:='101';

parambyname('ho').asstring:='101';

parambyname('power').asfloat:=nvpower; //double형 변수

parambyname('gas').asfloat:=nvgas; //double형 변수

parambyname('sudo').asfloat:=nvcold; //double형 변수

parambyname('onsu').asfloat:=nvhot; //double형 변수

parambyname('calory').asfloat:=nvcalory; //double형 변수

execsql;

1  COMMENTS
  • Profile
    김범석 2000.06.22 00:51
    델초보 wrote:

    > 아래 소스가 왜 type mismatch가 날까요?

    > db는 파라독스입니다.

    > 삽입되는 파라미터 순서랑 table의 필드순서는 완전히 똑같아서

    > 테이블다음에 필드는 생략해도 무방할 것 같구요...

    >

    > 아래 내용을 sql explorer에서 하면 에러가 안나거든요...

    > 도저히 이유를 모르겠네요...

    >

    > type mismatch???????

    >

    > close;

    > sql.clear;

    > sql.add('insert into table1.db');

    > sql.add('values(:hamrno,:nalja,:dong,:ho,:power,:gas,:sudo,:onsu,:calory)');

    > parambyname('hamrno').asinteger:=strtoint(tempstring);

    > parambyname('nalja').asstring:=formatdatetime('YYYY-MM-DD',Now);

    > parambyname('dong').asstring:='101';

    > parambyname('ho').asstring:='101';

    > parambyname('power').asfloat:=nvpower; //double형 변수

    > parambyname('gas').asfloat:=nvgas; //double형 변수

    > parambyname('sudo').asfloat:=nvcold; //double형 변수

    > parambyname('onsu').asfloat:=nvhot; //double형 변수

    > parambyname('calory').asfloat:=nvcalory; //double형 변수

    > execsql;



    insert sql을 실행중에 만드시지 마시고 미리 쿼리컴포넌트에 만들어 놓은 다음

    Object inspact Params속성의 각파라미터들의 DataType를 알맞게 설정하신 다음

    실행중에 파라미터 값을 move 시켜보세요 아마 될 거예요..



    다음과 같이

    with query1 do begin

    > close;

    > parambyname('hamrno').asinteger:=strtoint(tempstring);

    > parambyname('nalja').asstring:=formatdatetime('YYYY-MM-DD',Now);

    > parambyname('dong').asstring:='101';

    > parambyname('ho').asstring:='101';

    > parambyname('power').asfloat:=nvpower; //double형 변수

    > parambyname('gas').asfloat:=nvgas; //double형 변수

    > parambyname('sudo').asfloat:=nvcold; //double형 변수

    > parambyname('onsu').asfloat:=nvhot; //double형 변수

    > parambyname('calory').asfloat:=nvcalory; //double형 변수

    > execsql;

    end;





    그럼 즐거운 코딩 되세요...