아래 소스가 왜 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;
> 아래 소스가 왜 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;
그럼 즐거운 코딩 되세요...