如何处理数据库中的图片???

sdldp 2002-04-17 09:54:41
有一字段类型是IMAGE,如何将外部图片保存到该字段下,请指教???
...全文
42 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sword1028 2002-04-17
  • 打赏
  • 举报
回复
var
stream : TMemorystream;
begin
stream :=TMemrorystream.Create;
stream.loadFilename:='c:\1.bmp'
table1.append
(table1.fieldbyname('image') as TBOLBfIELDS).lOADSTREAM(stream);
table1.post;
stream.free;
end

程序麻烦了一点,不过很好用的
hegum 2002-04-17
  • 打赏
  • 举报
回复
保存图片文件和word文件差不多
procedure TsampleForm.OpenDOCClick(Sender: TObject);
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
OpenDialog1.Filter:='WORD文档(*.DOC)|*.DOC';{从对话窗选择文件}
if OpenDialog1.Execute then
begin
MyFile:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
with table1 do {‘table1’为含BLOB字段的表名}
begin
Open;
Edit;
Stream := TBlobStream.Create(FieldByName('Doc') as TBlobField,
bmWrite);{‘Doc’为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize); {Make room for the buffer's null terminator.}
Buffer := AllocMem(MemSize); {Allocate the memory.}
try
Stream.Seek(0, soFromBeginning); {Seek 0 bytes from the stream's
end point}
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
try
Post;
except
on E: EDatabaseError do
if HandelException(E)< >0 then
exit
else
raise;
end;
end;
Doc_ole.CreateObjectFromFile(OpenDialog1.FileName,False);
Doc_ole.Run;{Doc_ole为ToleContainer构件名}
end;
end;

---- 以上为向数据库中写入的程序,应用中从对话窗取出文件在ToleContainer构件中显示的同时存入数据库。
procedure TsampleForm.GetDocClick(Sender: TObject);
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
MyFile:=TFileStream.Create('c:\temp.tmp',fmCreate);
with Query1 do
begin
Stream := TBlobStream.Create(FieldByName('Doc') as TBlobField, bmRead);
MemSize := Stream.Size;
Inc(MemSize); {Make room for the buffer's null terminator.}
Buffer := AllocMem(MemSize); {Allocate the memory.}
try
Stream.Read(Buffer^,MemSize);
MyFile.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
end;
if FileExists('c:\temp.DOC') then
DeleteFile('c:\temp.DOC');
if FileExists('c:\temp.tmp') then
begin
RenameFile('c:\temp.tmp', 'c:\temp.DOC');
Doc_ole.CreateObjectFromFile('c:\temp.DOC',False);
Doc_ole.Run;
end;
end;

---- 以上程序为从数据库从将WORD文档取出,并放在temp.doc的临时文件上并在ToleContainer构件中显示。
---- 在程序的其他部份应准确控制表记录指针,使WORD文档的存取发生在正确的记录位置。

-----------------------------------------
中国计算机世界出版服务公司版权所有
lovewangj 2002-04-17
  • 打赏
  • 举报
回复
TBlobField(adoTable1.FieldByName('图')).LoadFromFile(filename1);


thisisxutao 2002-04-17
  • 打赏
  • 举报
回复
TBlobField(adoTable1.FieldByName('图')).LoadFromFile(filename1);
zx_wang 2002-04-17
  • 打赏
  • 举报
回复
adoquery1.append;
TBlobField(adoquery1['image']).loadfromfile('test.bmp');
adoquery1.post;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧