Q&A

  • db 검색조건 실행시 에러"급_빠른답변을..."
에디트 박스에 검색할 내용을 입력해서 조회하는 내용입니다. //

아래는 정상적으로 테이블의 모든내용 출력



with query1 do

begin



close;

SQL.Clear;

sql.Add('select * ');

sql.add('from JI_PASS');

open;

end;





// 아래의 내용도 정상적으로 출력



with query1 do

begin



close;

SQL.Clear;



sql.Add('select * ');

sql.add('from JI_PASS');

sql.add(' where Dong=1120');

open;

end;









// 그러나 다음 where 절을 추가시 아래와 같은 에러 출력





with query1 do



begin

close;

SQL.Clear;

sql.Add('select * ');

sql.add('from JI_PASS');

sql.add(' where NAME Like "'+Edit1.text+'%" '); // <= 추가 부분

open;

end;





// Error 메시지

Project 프로그램.exe raised exception class EDBEngineError with message

'Invalid field name. ORA-00904: 열명이 부적합합니다.',Process stropped. Use Step or Run to continue.





라고 에러 메시지가 뜹니다.

다른 해결책이라도.....참고로 위에 적용한 테이블 명은 JI_PASS , 필드명은 DONG, JU..,NAME ,등 오라클db 입니다.;



도움을 부탁드립니다 급하거든요.

2  COMMENTS
  • Profile
    안인권 1999.08.18 01:49
    박수영 께서 말씀하시기를...

    > 에디트 박스에 검색할 내용을 입력해서 조회하는 내용입니다. //

    > 아래는 정상적으로 테이블의 모든내용 출력

    >

    > with query1 do

    > begin

    >

    > close;

    > SQL.Clear;

    > sql.Add('select * ');

    > sql.add('from JI_PASS');

    > open;

    > end;

    >

    >

    > // 아래의 내용도 정상적으로 출력

    >

    > with query1 do

    > begin

    >

    > close;

    > SQL.Clear;

    >

    > sql.Add('select * ');

    > sql.add('from JI_PASS');

    > sql.add(' where Dong=1120');

    > open;

    > end;

    >

    >

    >

    >

    > // 그러나 다음 where 절을 추가시 아래와 같은 에러 출력

    >

    >

    > with query1 do

    >

    > begin

    > close;

    > SQL.Clear;

    > sql.Add('select * ');

    > sql.add('from JI_PASS');

    > sql.add(' where NAME Like "'+Edit1.text+'%" '); // <= 추가 부분

    > open;

    > end;

    >

    >

    > // Error 메시지

    > Project 프로그램.exe raised exception class EDBEngineError with message

    > 'Invalid field name. ORA-00904: 열명이 부적합합니다.',Process stropped. Use Step or Run to continue.

    >

    >

    > 라고 에러 메시지가 뜹니다.

    > 다른 해결책이라도.....참고로 위에 적용한 테이블 명은 JI_PASS , 필드명은 DONG, JU..,NAME ,등 오라클db 입니다.;

    >

    > 도움을 부탁드립니다 급하거든요.



    맞는건지 잘 모르겠군요

    원하는 것이 아니면 죄송합니다.

    전 아래와 같이 코딩합니다.

    with query1 do



    begin

    close;

    SQL.Clear;

    sql.Add('select * ');

    sql.add('from JI_PASS');

    sql.add('where NAME Like :a');

    parambyname('a').asstring := trim(edit1.text) + '%';

    open;

    end;



  • Profile
    이종근 1999.08.18 15:27
    안인권 께서 말씀하시기를...

    > 박수영 께서 말씀하시기를...

    > > 에디트 박스에 검색할 내용을 입력해서 조회하는 내용입니다. //

    > > 아래는 정상적으로 테이블의 모든내용 출력

    > >

    > > with query1 do

    > > begin

    > >

    > > close;

    > > SQL.Clear;

    > > sql.Add('select * ');

    > > sql.add('from JI_PASS');

    > > open;

    > > end;

    > >

    > >

    > > // 아래의 내용도 정상적으로 출력

    > >

    > > with query1 do

    > > begin

    > >

    > > close;

    > > SQL.Clear;

    > >

    > > sql.Add('select * ');

    > > sql.add('from JI_PASS');

    > > sql.add(' where Dong=1120');

    > > open;

    > > end;

    > >

    > >

    > >

    > >

    > > // 그러나 다음 where 절을 추가시 아래와 같은 에러 출력

    > >

    > >

    > > with query1 do

    > >

    > > begin

    > > close;

    > > SQL.Clear;

    > > sql.Add('select * ');

    > > sql.add('from JI_PASS');

    > > sql.add(' where NAME Like "'+Edit1.text+'%" '); // <= 추가 부분

    > > open;

    > > end;

    > >

    > >

    > > // Error 메시지

    > > Project 프로그램.exe raised exception class EDBEngineError with message

    > > 'Invalid field name. ORA-00904: 열명이 부적합합니다.',Process stropped. Use Step or Run to continue.

    > >

    > >

    > > 라고 에러 메시지가 뜹니다.

    > > 다른 해결책이라도.....참고로 위에 적용한 테이블 명은 JI_PASS , 필드명은 DONG, JU..,NAME ,등 오라클db 입니다.;

    > >

    > > 도움을 부탁드립니다 급하거든요.

    >

    > 맞는건지 잘 모르겠군요

    > 원하는 것이 아니면 죄송합니다.

    > 전 아래와 같이 코딩합니다.

    > with query1 do

    >

    > begin

    > close;

    > SQL.Clear;

    > sql.Add('select * ');

    > sql.add('from JI_PASS');

    > sql.add('where NAME Like :a');

    > parambyname('a').asstring := trim(edit1.text) + '%';

    > open;

    > end;

    >