|
Sunwine 님이 쓰신 글 :
: A라는 컴에 마이다스 서버를 설치하고
: B라는 컴에서는 TSocketConnection을 사용하여 DB에 접속하려고 합니다.
: (A라는 컴에 있는 DB에는 지도와 같은 용량이 큰 그림파일을 포함하고 있기 때문에
: 그 크기가 큽니다. )
:
: 한 두개정도의 그림이 A라는 컴의 DB에 저장되었을 경우(그림 하나당 1MB정도 됩니다.)
: B라는 컴에서는 잘 연결되는데 그 이상의 그림이 DB에 저장되면
: B라는 컴에서 "EAccessViolation"이라는 메시지 표시되고 접속이 안됩니다.
:
: 그림이 2개정도 포함될땐 되고 그 이상이면 안되는것으로 봐선
: B라는 컴에서 A라는 컴의 DB데이터를 읽어올때 읽어오는 버퍼의 크기에 제한이 있는것
: 같은데 잘모르겠네요
:
: 참고로 A라는 컴의 DB는 InterBase이고 연결방법은
: 책에 일반적으로 나와있는 마이다스 서버/클라이언트 프로그램입니다.
: 클라이언트가 전국에 분산되어있는 상황이기 때문에 TSocketConnection으로 연결했습니다.
: 알고 계신분있으시면 가르쳐주세요....
이거 제가 질문하고 제가 답변을 쓰게되었네요....
이것저것 하다가 보니 알게되어서 이렇게 답변을 쓰게됩니다.
제가 DB에 저장하려고 하는 그림 파일의 크기가 약 1MB정도 됩니다.
이렇게 저장된 DB를 TSocketConnection과 같이 원격에서 BDE를 통해 읽어오려면(물론 중간엔 마이다스가 있죠)
BDE 인터베이스 세팅중 BLOB SIZE라는 것이 있습니다. 이것은 그림파일을 한번에 읽어오는 용량의 한계더군요
디폴트 값이 32로 정해져 있는데 이 의미는 한번에 32KB밖에는 외부에서 접속못한다는 뜻같네요
즉 그림파일이 32KB이상이면 에러가 난다는 말이죠
저같이 그림이 1MB이상이면 당연히 원격에서 읽어올때 에러가 나지요
근데 불행히도 이값의 범위가 32KB에서 1000KB까지만 허용하는군요
그래서 그림파일의 크기를 800KB로 변경하여 DB에 저장하고 BLOB SIZE값을 900으로 한후
원격에서 DB를 읽었더니 잘읽혀지네요
RDB를 써서 원격에서 접속할때 참고하세요
|