2010. 9. 13. 02:33
델파이는 조회 결과레코드셋에 들어 있는 바이너리를
CreateBlobStream() 함수를 이용하여 받을 수 있다.
기본적으로 stream으로 받아서 메모리에 올린 후 원하는 작업을 하면 된다.
이 코드 조각에서는 바이너리를 파일로 저장하기 위해 TMemoryStream의 SaveToFile() 프로시져를 사용하였다.
var
code, tempFullPath: string;
stream : TStream;
blob : string;
mStream : TMemoryStream;
begin
with ADOQuery1 do begin
if Active then Close;
SQL.Clear;
SQL.Text := 'SELECT binary'
+ ' FROM tablename'
+ ' WHERE code=:code';
Parameters.ParamByName('code').Value := code;
// 여기서 Open의 결과는 한행만을 반환한다.
Open;
stream := CreateBlobStream(FieldByName('binary'), bmRead);
SetLength(blob, stream.Size);
stream.Read(Pointer(blob)^, stream.Size);
mStream := TMemoryStream.Create;
mStream.Write(Pointer(blob)^, Length(blob));
mStream.SaveToFile(tempFullPath);
end;
end;
'Windows Programming > Delphi 6/7' 카테고리의 다른 글
Delphi6/7 디렉토리(폴더) 다이알로그, 폴더속에 있는 파일들 복사하기 (0) | 2010.09.13 |
---|---|
Delphi6/7 ShellAPI unit의 ShellExecute (0) | 2010.09.13 |
Delphi6/7 TADOQuery - 기본적인 조회 코드 조각 (0) | 2010.09.13 |
Delphi6/7 TDBGrid - Column autoFit Implementation (0) | 2010.09.13 |
Delphi6/7 TDBGrid - Scroll problem (0) | 2010.09.13 |