Q&A

  • Stream이용해서 DB에 이미지를 저장하고 나서, 다시 초기화?
Stream을 이용해서 DB에 이미지를 저장하고 불러들이고는 되는데요,

특정 레코드에 저장된 이미지를 없애려고(Edit) 하는데 잘 안되네요,

어떻게 하는지 가르쳐주세요.



아래는 제가 한 번 해본 방식인데 계속 다운되네요...



procedure TForm1.Button3Click(Sender: TObject);

var

TempStream : TStream;

begin

Image1.Picture := nil;

if Table1.FindKey(['001']) then

begin

Table1.Edit;

Table1.FieldByName('name').AsString := '';

TempStream :=

Table1.CreateBlobStream(Table1.FieldByName('pic'), mReadWrite);

TempStream := nil;

Table1.Post;

TempStream.Free;

end;

1  COMMENTS
  • Profile
    양병규 2000.02.04 10:08
    TempStream := nil;는 스트림의 내용을 지우는것이 아니라 스트림형 변수에 값을 해제하는 역할을 합니다. 에러가 나는것은 TempStream := nil;한 후에 TempStream.Free;하고 TempStream 을 계속 사용했기때문이죠..



    TempStream := nil;을 TempStream.SetSize( 0 );으로 바꿔보세요 ..(이게 맞나?)



    그럼

    평안하시길~







    윤진화 wrote:

    > Stream을 이용해서 DB에 이미지를 저장하고 불러들이고는 되는데요,

    > 특정 레코드에 저장된 이미지를 없애려고(Edit) 하는데 잘 안되네요,

    > 어떻게 하는지 가르쳐주세요.

    >

    > 아래는 제가 한 번 해본 방식인데 계속 다운되네요...

    >

    > procedure TForm1.Button3Click(Sender: TObject);

    > var

    > TempStream : TStream;

    > begin

    > Image1.Picture := nil;

    > if Table1.FindKey(['001']) then

    > begin

    > Table1.Edit;

    > Table1.FieldByName('name').AsString := '';

    > TempStream :=

    > Table1.CreateBlobStream(Table1.FieldByName('pic'), mReadWrite);

    > TempStream := nil;

    > Table1.Post;

    > TempStream.Free;

    > end;