Q&A

  • expression ? 에러..
* 사용환경 : 델파이5 / Windows 2000

* 에러 메시지 : EDBEnginError .. Type mismatch in expression



DataModule 을만들어서 그 위에 쿼리 데이타베이스 테이블 데이타 소스를 두었구요



쿼리의 SQL 은 비워둔 상태로 Active는 False 해 두었습니다.



그리고 메인 폼에서 쿼리는 이렇게 날렸습니다.

procedure TExchangeinsfrm.Button1Click(Sender: TObject);

begin

if Exchange.Mode = 1 then

with GreenDataModule.Query do

begin

close;

sql.clear;

sql.add('insert into exchange ');

sql.add('values (:Enums, :Ename, :Eworknum, :Erepresent,');

sql.add(':Eaddress, :Ebistatu, :Eitem, :Ephone1, :Ephone2, :Efax)');

Parambyname('Enums').AsInteger := strtoint(Edit10.text);

Parambyname('Ename').AsString := Edit1.text;

Parambyname('Eworknum').AsString := Edit2.text;

Parambyname('Erepresent').AsString := Edit3.text;

Parambyname('Eaddress').AsString := Edit4.text;

Parambyname('Ebistatu').AsString := Edit5.text;

Parambyname('Eitem').AsString := Edit6.text;

Parambyname('Ephone1').AsString := Edit7.text;

Parambyname('Ephone2').AsString := Edit8.text;

Parambyname('Efax').AsString := Edit9.text;

execsql;

end;

end;



데이터 형이라든가 기타 다른 자질구래한 설정은 맞게 했다고 생각합니다.



그런데..실행을 하고 버튼을 누르면

'EDBEnginError .. Type mismatch in expression '이런 에러가 나오는군요..

어느 부분이 잘못된 것인지 모르겠습니다.

디버그에서는 execsql; 에서 걸리는데...

DB(파라독스)가 잘못
2  COMMENTS
  • Profile
    블랙봉 2001.05.16 08:23
    찬이 wrote:

    > * 사용환경 : 델파이5 / Windows 2000

    > * 에러 메시지 : EDBEnginError .. Type mismatch in expression

    >

    > DataModule 을만들어서 그 위에 쿼리 데이타베이스 테이블 데이타 소스를 두었구요

    >

    > 쿼리의 SQL 은 비워둔 상태로 Active는 False 해 두었습니다.

    >

    > 그리고 메인 폼에서 쿼리는 이렇게 날렸습니다.

    > procedure TExchangeinsfrm.Button1Click(Sender: TObject);

    > begin

    > if Exchange.Mode = 1 then

    > with GreenDataModule.Query do

    > begin

    > close;

    > sql.clear;

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

    > sql.add('values (:Enums, :Ename, :Eworknum, :Erepresent,');

    > sql.add(':Eaddress, :Ebistatu, :Eitem, :Ephone1, :Ephone2, :Efax)');

    > Parambyname('Enums').AsInteger := strtoint(Edit10.text);

    > Parambyname('Ename').AsString := Edit1.text;

    > Parambyname('Eworknum').AsString := Edit2.text;

    > Parambyname('Erepresent').AsString := Edit3.text;

    > Parambyname('Eaddress').AsString := Edit4.text;

    > Parambyname('Ebistatu').AsString := Edit5.text;

    > Parambyname('Eitem').AsString := Edit6.text;

    > Parambyname('Ephone1').AsString := Edit7.text;

    > Parambyname('Ephone2').AsString := Edit8.text;

    > Parambyname('Efax').AsString := Edit9.text;

    > execsql;

    > end;

    > end;

    >

    > 데이터 형이라든가 기타 다른 자질구래한 설정은 맞게 했다고 생각합니다.

    >

    > 그런데..실행을 하고 버튼을 누르면

    > 'EDBEnginError .. Type mismatch in expression '이런 에러가 나오는군요..

    > 어느 부분이 잘못된 것인지 모르겠습니다.

    > 디버그에서는 execsql; 에서 걸리는데...

    > DB(파라독스)가 잘못
  • Profile
    hobakpa 2001.05.16 08:17
    찬이 wrote:

    > * 사용환경 : 델파이5 / Windows 2000

    > * 에러 메시지 : EDBEnginError .. Type mismatch in expression

    >

    > DataModule 을만들어서 그 위에 쿼리 데이타베이스 테이블 데이타 소스를 두었구요

    >

    > 쿼리의 SQL 은 비워둔 상태로 Active는 False 해 두었습니다.

    >

    > 그리고 메인 폼에서 쿼리는 이렇게 날렸습니다.

    > procedure TExchangeinsfrm.Button1Click(Sender: TObject);

    > begin

    > if Exchange.Mode = 1 then

    > with GreenDataModule.Query do

    > begin

    > close;

    > sql.clear;

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

    //---추가---

    sql.add('(Enums, Ename, Eworknum,

    Erepresent,Eaddress, Ebistatu, Eitem, Ephone1, Ephone2, Efax)');



    > sql.add('values (:Enums, :Ename, :Eworknum, :Erepresent,');

    > sql.add(':Eaddress, :Ebistatu, :Eitem, :Ephone1, :Ephone2, :Efax)');

    > Parambyname('Enums').AsInteger := strtoint(Edit10.text);

    > Parambyname('Ename').AsString := Edit1.text;

    > Parambyname('Eworknum').AsString := Edit2.text;

    > Parambyname('Erepresent').AsString := Edit3.text;

    > Parambyname('Eaddress').AsString := Edit4.text;

    > Parambyname('Ebistatu').AsString := Edit5.text;

    > Parambyname('Eitem').AsString := Edit6.text;

    > Parambyname('Ephone1').AsString := Edit7.text;

    > Parambyname('Ephone2').AsString := Edit8.text;

    > Parambyname('Efax').AsString := Edit9.text;



    ----추가--->>>shomessage(GreenDataModule.sql.text);

    > execsql;

    > end;

    > end;



    필드의 타입을 잘몰라서 모라 대답은 못하지만 메제지에 나오는 내용을 차근차근 보시면 해결하실수 있으실거 같군요.



    도움이 되셨으면 합니다.