## 오류 메세지 [ 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사용하고 계시는분 있으면 좀 봐주세요.
꼭좀 부탁 드리겠습니다.
>
> ## 오류 메세지 [ 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;