BLOBFIELD.loadfromfile('jpgfile')
再用TJPEG类读取TBLOBSTREAM
...显示即可
或直接用JPEGIMG控件中的DBJPEGIMG。
再用TJPEG类读取TBLOBSTREAM
...显示即可
或直接用JPEGIMG控件中的DBJPEGIMG。
解决方案 »
- delphi7编写的DLL代码到2010中编译后使用时会自动关闭程序
- delphi 快速排序的非递归实现算法
- 自定义控件能可视化编辑么?
- 使用XPMan后,TComboBox有Bug。
- 哪里有Delphi 数字图象处理的资料了?
- 如何通过双击TabSheet的Tab关闭,释放这个Sheet?
- PASCAL 的变量又没有作用域?
- 千万火急!!! 有三层开发经验的兄弟们进来看看...ado blob...(在线等候。。。)
- 如何在网络上共享DELPHI的database desktop创建的PARADOX数据表?
- 谁能带我学Delphi?
- paradox表日期型字段怎么引用
- 现在的Delphi能否生成DOS下的程序?
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
filename:string;
begin
OpenDialog1.Filter:='图形文件(*.jpg)|*.jpg';
if OpenDialog1.Execute then
begin
filename:=OpenDialog1.FileName;
MyFile:=TFileStream.Create(fileName,fmOpenRead);
with table1 do
begin
Open;
edit;
Stream := TBlobStream.Create(FieldByName('PIC') as TBlobField, bmWrite);{‘Doc’为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize);
//增加的一字节给结尾的null
Buffer := AllocMem(MemSize);
try
Stream.Seek(0, soFromBeginning);
//流指针位置放到最前
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
FieldByName('Name').Asstring:=ExtractFileName(fileName);
FieldByName('Size').Asstring:=inttostr(MemSize-1);
finally
MyFile.Free;
Stream.Free;
end;
try
table1.Post;
except
showmessage('保存失败!');
halt;
end;
end;
end;
end;
begin
Table1.Insert;
Table1Binary.LoadFromFile('C:\test.jpg');
Table1.post;
end;
Procedure TForm1.Button2Click(Sender:Tobject);
begin
Table1Binary.SaveToFile('c:\test1.jpg');
image1.Picture.LoadFromFile('c:\test1.jpg');
end;
**注:此处存放JPEG图片的字段为Binary类型的字段