우선, 박영길님 답변에 감사드립니다.
INFORMIXDIR=/home/informix로 user가 informix 정확합니다.
만약 "INFORMIXDIR"이 잘못되었다면 esqlc로 작성한 Web CGI가 아닌 상태에서도
DB insert 에러가 발생해야 할 건데 정상이거든요.
Web CGI 상태에서만 문제가 생깁니다.
여기저기 참고자료를 보아 'IX001' 에러가 퍼미션문제나 Grant문제라고 판단되는데, 아파치 웹데몬에서 CGI로 넘어와서 DB로 연결되기 때문에 informix란 유저를
인식하지 못하는것 같습니다. 익식시킬 방법이 없나요?
>>박영길 님께서 쓰시길<<
:: 안녕하세요.
::
:: SQLCODE가 -1829인 경우는 주로 "INFORMIXDIR"이 제대로
:: 설정되지 않아서 발생합니다. "INFORMIXDIR"인 제대로
:: 설정되면 메시지 파일을 읽어들여서 해당메시지를 출력하게
:: 되고요.
::
:: 직접 putenv("INFORMIXDIR=/opt/informix");를
:: 해보시거나 getenv("INFORMIXDIR");을 사용하여 제대로
:: 설정되었는 가를 확인하시기 바랍니다.
::
:: 그럼 수고하세요.
::
:: >>바보 님께서 쓰시길<<
::
:: ::
:: :: SQLCODE가 -1829로 표시되는데, finderr -1829 하면 자세한 오류내용이
:: :: 나타나질 않습니다. CGI가 http
:: :: 데몬의 퍼미션으로 동작되기 때문에 생기는 문제인것 같은데....
:: :: CGI 내부에 환경변수를 아래같이 추가하고 grant를 informix로
:: :: 설정해줬는데도 같은 현상입니다.
:: ::
:: :: putenv(INFORMIXDIR);
:: :: putenv(INFORMIXSERVER);
:: :: putenv(DBPATH);
:: :: putenv(PATH);
:: :: putenv(DBLANG)
:: ::
:: :: >>박영길 님께서 쓰시길<<
:: ::
:: :: :: 안녕하세요.
:: :: ::
:: :: :: SQLCODE값을 print해 본 후
:: :: :: printf("SQLCODE-> %d", SQLCODE);
:: :: ::
:: :: :: $ finderr SQLCODE값
:: :: ::
:: :: :: 을 하여 자세한 오류를 찾아보시기 바랍니다.
:: :: ::
:: :: :: 그럼.
:: :: ::
:: :: :: >>바보 님께서 쓰시길<<
:: :: ::
:: :: ::이렇게 저렇게 Web Server와 DB Server를 remot로 연결해서 Web Server측에서
:: :: ::Esqlc로 data를 insert 하는데까지는 문제가 없었습니다.
:: :: ::똑같은 insert 내용을 Web에서 form을 써서 입력받아 CGI를 통해 DB Server에
:: :: ::insert하면 'SQLSTATE after fetch is IX001' error가 발생하는데,
:: :: ::의심나는 곳은 환경설정이나 grant 부분인것 같은데 방법을 찾기 힘드네요.
:: :: ::Web Server는 아파치입니다.
:: :: ::::
|