|
혹시나 해서..
Queur문을 execute하기 전에 TMemoryStream을 delete 하는데.. 좀 이상한데요....
급하지 않으면 좀 나중에 delete 하면 어떨런 지...?
안되면... 걍~ 주절 거렸습니다.. -.-;;
무한질주 님이 쓰신 글 :
: ㅠㅠ 오라클에 이미지가 저장이 안되서 몇일째 머리에 쥐나고 있슴돠....
: 다른 데이터들은 모두 잘 저장이 되는데 유독 이미지만....ㅡㅡ;
: 고수님들 보시고 아시는 분들 도움 부탁드리겠습니다.
:
:
: 먼저 환경을 말씀드리자면,
:
: 툴은 C++Bilder5 을 사용하고 있습니다.
:
: 오라클은 10g, 8i, 9i 모두 사용해보았습니다. (10g에서는 저장이 되고 8i, 9i에서는 저장이 안됩니다.)
:
: 이미지를 저장할 테이블에는 img라른 컬럼이 있으며,
: 컬럼의 데이터 타입은 Blob, Long Raw 두가지를 사용해보았습니다.
:
:
: 코드는 다음과 같습니다.
:
: .TADOConnection 타입의 커넥터로 오라클에 접속을 하였습니다.
:
: //---------------------------------------------------------------------------
: TADOQuery* tADOQuery = new TADOQuery(this);
: AnsiString query; // 쿼리문을 위한 변수
: TMemoryStream *ms; // 이미지를 저장할 메모리스크림 변수
:
: tADOQuery->Active = false;
: tADOQuery->Prepared = false;
:
: if (mPicture == NULL) // TJPEGImage* mPicture
: return;
:
: ms = new TMemoryStream;
: mPicture->SaveToStream(ms);
:
: query = "INSERT INTO imagetable VALUES (:image_param)";
:
: ADOQuery->SQL->Clear();
: ADOQuery->SQL->Text = query;
:
: ms->Position = 0;
: ADOQuery->Parameters->ParamByName("image_param")->LoadFromStream(ms, ftGraphic);
:
: delete ms;
:
: try
: {
: tADOQuery->ExecSQL();
: }
: catch (Exception &e)
: {
: }
:
: //---------------------------------------------------------------------------
:
: 이런상황에서 프로그램을 실행해보면 다음과 같은 메세지가 뜹니다.
:
: Project Project1.exe raised exception class EOleException with message "ORA-01036: 잘못된 변수명/번호'. Process stopped. Use Step or Run to continue.
:
:
:
: 고수님들~~~~
:
: 제발 아시는분이 계셔야 될텐데.....
|