Q&A

  • [Q:ISAPI] Win2000 에서 ISAPI DB 프로그래밍..
Win2000 / NT 4.0 에서 ISAPI 프로그래밍을 하고 있습니다.



그런데 Response.Content := 'Hello Web World !' 이런식으로



집어 넣으면 DLL 이 정상적으로 동작하는데



Table1.Open 이렇게 DB 만 열면 HTTP 500 에러가 나는군요.



TDataBase, TSession, TTable, TQuery 등등 설정도 해 보았으며,



DB Web Application Wizard 로 만들어서도 해보았으나 모두 에러가 납니다.



DB 는 Paradox, Oracle 등 해볼만한건 다 해보았구요.



권한 설정등의 문제가 아닌가 생각하는데 아시는 분



답을 주시면 고맙겠습니다.



3  COMMENTS
  • Profile
    뎐세 2000.07.14 06:05
    음~~

    저두 비슷한 일이 있었는데,

    문제는 ODBC를 사용하고 ADOQuery를 사용했을때,

    Read only로 열린다는게 문제였습니다.

    만일 ADOQuery를 사용하시면, ConnectionString := '---;Mode=ReadWrite'

    이렇게 해보세요...





    그럼 즐거운 프로그램 하세요.







    박종하 wrote:

    > Win2000 / NT 4.0 에서 ISAPI 프로그래밍을 하고 있습니다.

    >

    > 그런데 Response.Content := 'Hello Web World !' 이런식으로

    >

    > 집어 넣으면 DLL 이 정상적으로 동작하는데

    >

    > Table1.Open 이렇게 DB 만 열면 HTTP 500 에러가 나는군요.

    >

    > TDataBase, TSession, TTable, TQuery 등등 설정도 해 보았으며,

    >

    > DB Web Application Wizard 로 만들어서도 해보았으나 모두 에러가 납니다.

    >

    > DB 는 Paradox, Oracle 등 해볼만한건 다 해보았구요.

    >

    > 권한 설정등의 문제가 아닌가 생각하는데 아시는 분

    >

    > 답을 주시면 고맙겠습니다.

    >

  • Profile
    송인표 2000.07.14 03:33
    저도 초기에 그런 문제를 접해 보았는데요 답답하더군요...



    위의 님은 아주 논리적인 접근을 시도하고 있는데요.. 저는 말입니다.



    좀 위험하지만 windows 디렉토리 밑의 system32 디렉토리의 보안 사용권한에



    IUSR_"설정한엔티PC명" 을 추가하고 읽기,쓰기 권한을 주었더니 쓸수 있더군요...



    NT 4.0에서는 이런 문제가 없었는데 2000에서는 프로그램 단위로 보안이 강화되어



    그런 모양입니다.



    BDE의 주요 모듈이 그안에 위치하고 있기 때문인듯....



    근본적인 해결법은 아니니 주의해서 접근하시기 바랍니다. 이만....







    박종하 wrote:

    > Win2000 / NT 4.0 에서 ISAPI 프로그래밍을 하고 있습니다.

    >

    > 그런데 Response.Content := 'Hello Web World !' 이런식으로

    >

    > 집어 넣으면 DLL 이 정상적으로 동작하는데

    >

    > Table1.Open 이렇게 DB 만 열면 HTTP 500 에러가 나는군요.

    >

    > TDataBase, TSession, TTable, TQuery 등등 설정도 해 보았으며,

    >

    > DB Web Application Wizard 로 만들어서도 해보았으나 모두 에러가 납니다.

    >

    > DB 는 Paradox, Oracle 등 해볼만한건 다 해보았구요.

    >

    > 권한 설정등의 문제가 아닌가 생각하는데 아시는 분

    >

    > 답을 주시면 고맙겠습니다.

    >

  • Profile
    박종하 2000.06.20 10:34
    원인과 해결 방법을 알았습니다.



    try ... exception 으로 잡아 봤더니



    Internal Server Error 500



    Exception: EDBEngineError

    Message: An error occurred while attempting to initialize the Borland Database Engine (error $2501)



    에러코드가 $2501 이더군요.



    그래서 Deja.com Usenet 에서 찾아봤져..



    결국 답은 http://www.borland.com/devsupport/sqllinks/pub-88.html



    에 있었습니다.



    DBE Administrator 에서 SYSTEM->INIT 에서 SHAREDMEMLOCATION 과



    SHAREDMEMSIZE 를 변경했더니 동작되더군요.



    아마 Windows 95/98 에서는 문제가 별로 없나보군요..



    그런데 SHAREDMEMLOCATION 과 SHAREDMEMSIZE 를 정확히 얼마로 튜닝해야하는지는 모르겠습니다.



    전 SHAREDMEMLOCALTION=1000 으로 SHAREDMEMSIZE=4096 으로 했는데



    어떤 사람들은 더 크게도 잡더군요.



    그런데 재밌는건 SHAREDMEMLOCATION 의 디폴트 값이



    Default (for Windows 95): 0xEBDE0000

    Default (for Windows NT): 0x6BDE0000



    처럼 주소에 BDE 를 넣어서 잡은걸 보면 BDE (Borland DataBase Engine)



    응 뜻하는거겠죠 ? 결국은 아무 의미 없을지도 모른다는 생각이 듭니다.



    시스템과 충돌하지 않는 메모리 영역만 잡으면 되는가 봅니다.



    어쨌던 SHAREDMEMORY 를 통해서 DBE 과 SQLLink 가 동작되는데



    여기에 비밀이 있었습니다.