Q&A

  • DB2사용하고 계시는분 도와주세요. ????


## 오류 메세지 [ Debugger Exception Notification ]==================================================

Project PMD.exe raised exception class EDBEngineError with message 'Invalid field name.

[IBM][Client Access Express ODBC 드라이버 (32비트)][DB2/400 SQL]SQL0206 - 열 CCEDSC이 지정한 테이블에

없음. ', Process stopped. Use Step or Run to continue.

=====================================================================================================



// 입력된 제품 코드를 이용하여 테이블에서 자료 검색후 출력 //



input_data:=edit1.Text;

query1.sql.clear;

query1.SQL.Add('SELECT * FROM QSU');

-> query1.SQL.Add('WHERE CCDESC = '''+ input_data +'''');

query1.open;



-> 표 있는데까지는 잘 돌아가다가 query1.open을 하면 위의 에러가 뜹니다.



위에 오류메세지를 보면 데이터 필드가 테이블에 존재 하지 않고..데이터 필드를 잘못 주었다고 나오는데요.

필드명은 제대로 주었는데도 나네요.

그리고, 위에오류메세지는 IBM AS/400에 있는 DB2에서 돌리다가 에러가 난것입니다.

똑같은것을 Oracle이나 인터베이스로 해보면 괜찮거든요.

혹시 DB에서 사용하는 문법이 틀려서 그런건지...????

혹시 DB2사용하고 계시는분 있으면 좀 봐주세요.

꼭좀 부탁 드리겠습니다.



1  COMMENTS
  • Profile
    코스엑스 2001.10.12 20:42
    정규성 wrote:

    >

    > ## 오류 메세지 [ Debugger Exception Notification ]==================================================

    > Project PMD.exe raised exception class EDBEngineError with message 'Invalid field name.

    > [IBM][Client Access Express ODBC 드라이버 (32비트)][DB2/400 SQL]SQL0206 - 열 CCEDSC이 지정한 테이블에

    > 없음. ', Process stopped. Use Step or Run to continue.

    > =====================================================================================================

    >

    > // 입력된 제품 코드를 이용하여 테이블에서 자료 검색후 출력 //

    >

    > input_data:=edit1.Text;

    > query1.sql.clear;

    > query1.SQL.Add('SELECT * FROM QSU');

    > -> query1.SQL.Add('WHERE CCDESC = '''+ input_data +'''');

    > query1.open;

    >

    > -> 표 있는데까지는 잘 돌아가다가 query1.open을 하면 위의 에러가 뜹니다.

    >

    > 위에 오류메세지를 보면 데이터 필드가 테이블에 존재 하지 않고..데이터 필드를 잘못 주었다고 나오는데요.

    > 필드명은 제대로 주었는데도 나네요.

    > 그리고, 위에오류메세지는 IBM AS/400에 있는 DB2에서 돌리다가 에러가 난것입니다.

    > 똑같은것을 Oracle이나 인터베이스로 해보면 괜찮거든요.

    > 혹시 DB에서 사용하는 문법이 틀려서 그런건지...????

    > 혹시 DB2사용하고 계시는분 있으면 좀 봐주세요.

    > 꼭좀 부탁 드리겠습니다.



    안녕하세요... 코스엑스입니다.



    일단 님이 작성하신 에러 메세지랑 샘플 코드에 오타가 없다면

    에러메세지에선 CCEDSC 란 필드가 없다고 나오고

    님이 작성하신 코드에선 CCDESC 로 돼있읍니다.

    코드먼저 확인해보시죠.



    그리고 항상 쿼리 Input parameter 는 ParamByName 이나 ParambyNo 를 쓰시는것을

    습관들이시는것이 좋읍니다. 이유는.. 각 디비마다 스트링 둘러싸는 방법도 틀리고

    특히 날짜같은것도 처리하는방식이 다틀려서... 코딩으로 하시면 실수도 많아지고

    쏘스 읽기 에도 안좋습니다.



    query1.SQL.Add('WHERE CCDESC = '''+ input_data +'''');



    새코드

    query1.SQL.Add('Where CCDESC = :CCDESC');

    ParamByName('CCDESC').asString := Input_data;

    Open;