아폴론 님이 쓰신 글 :
: : : 아래는 델파이 입니다.
: : :
: : : sql.add('update Table1 set ');
: : : sql.add(' ad_logo = :p_logo ');
: : : sql.add('where ad_clcd = ''00000'' ');
: : : parambyname('p_logo').size := TmpStream.Size; ***
: : : TmpStream.Position := 0; ***
: : : parambyname('p_logo').LoadFromStream(TmpStream,ftBlob); ***
:
: 위 소스는 디비에 업데이트하는 부분 입니다.
:
: parambyname('p_logo').LoadFromStream(TmpStream,ftBlob); 요기는
: 이미지를 그대로 대입하는것이 아니고 TmpStream이라는 변수에 이미지를 넣은 후 대입하는 겁니다.
:
: : p_logo 변수도 델파이에서 blob 타입이 맞지요.
: : 이미지를 blob 변수 p_logo에 넣어서 업데이트 하는 부분 같은데요.
: :
: : 그리고 나머지 3줄 *** 부분은 DB에서 blob 데이터를 가지고 오는 부분인 것 같은데
: : 가지고온 blob 이미지를 보여주는 방법은 어떻게 하는 지요.
: : 해결 방법이 나올 것 같은데요.
: : 고맙습니다.
:
: 델파이에서 디비의 BLOB 필드를 불러와 보여 주는것은 어렵지 않은데..
: 파워빌더는 제가 몰라서 어떻게 설명 해야 할지 난감 합니다.
:
: 불러온 이미지를 Stream변수에 담고 그 Stream을 Image 콤포넌트에 대입 시키면 보여지는데..
계속된 답변 고맙습니다.
FireBird에 대한 자료, 게시판 글 등 생각보다 적은 것 같아서 좀 걱정입니다.
파워빌더에서 update는 됩니다.
그런데 update가 잘 되었는지 확인 하려면 다시 select 해서 파워빌더의 blob 변수에 넣어서
파워빌더의 이미지 콤포넌트에 넣으면 이미지가 나타나지지 않아서 그렇습니다.
FireBird에는 Blob 컬럼 타입에도 타입이 여러가지(sub_type 이라고 표현이 되던데)가 있는 것 같던데
sub_type이 binary 를 선택했습니다.
일단 다른 방법으로 update된 이미지 데이터가 정상적으로 들어가 있는지 확인 할 수 있는 방법부터 찾아야 겠네요.
혹 다른 좋은 방법 있으면 부탁 좀 드립니다.
고맙습니다.
|