SQL_SERVER 7 字段类型: Image;
//从数据库中读出cad文件,bmp就更容易,得到后直接用image即可显示
var s : TMemoryStream;
begin
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('select filedwg from drawdwg where tabno = :no');
Parameters.ParamByName('no').Value := Edit1.Text;
Open;
if RecordCount = 0 then begin
showmessage('no find result !');
Exit;
end;
end;
deletefile('c:\temp.dwg');
s := TADOBlobStream.Create(TBlobField(ADOQuery1.FieldByName('filedwg')),bmRead);
s.SaveToFile('c:\temp.dwg');
s.Free;
end;
//从数据库中读出cad文件,bmp就更容易,得到后直接用image即可显示
var s : TMemoryStream;
begin
with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('select filedwg from drawdwg where tabno = :no');
Parameters.ParamByName('no').Value := Edit1.Text;
Open;
if RecordCount = 0 then begin
showmessage('no find result !');
Exit;
end;
end;
deletefile('c:\temp.dwg');
s := TADOBlobStream.Create(TBlobField(ADOQuery1.FieldByName('filedwg')),bmRead);
s.SaveToFile('c:\temp.dwg');
s.Free;
end;
stream1:tstream;
begin
stream1:=query1.createblobsteam(query1.fieldbyname('') as TBlobfield,bmread);
image1.loadfromstream(stream1);
stream1.free;
end;
ok了
记得给分呀!
所以最好用一个字段存放图片文件的后缀,在生成临时文件时用相关的后缀,然后再使用 Image 控件打开临时图片文件即可。
ms:tmemorystream;
jp:TJpegImage;
begin
ms:=tmemorystream.Create;
jp:=TJpegImage.Create;
try
with ADOQuery1 do
begin
Open;
TBlobField(FieldByName('i')).SaveToStream(ms);
Close;
end;
ms.Position:=0;
jp.LoadFromStream(ms);
Image1.Picture.Bitmap.Assign(jp);
finally
ms.Free;
jp.Free;
end;
end;
bmp:TBitmap;
后面jp全部改下!