请问DELPHI中怎么处理BLOB字段?

shaw_jansin 2003-10-16 09:53:54
我想用QUERY控件insert tb1(blob) values(:para1),然后设置参数的方式添加带BLOB字段的记录,不知怎么处理比较合适,同时取出又该如何?
不想用TABLE控件(总是预取数据)!
...全文
280 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaw_jansin 2003-10-20
  • 打赏
  • 举报
回复
up
soaringsouth 2003-10-16
  • 打赏
  • 举报
回复
把数据库blob字段存到文件:
procedure TMainFrm.N4Click(Sender: TObject);
var
MStream:TStream;
MFileStream:TFileStream;
pImage: pointer;
FileName:string;
aFileName:String;
begin

SaveDialog1.FileName:=suiDBGrid2.DataSource.DataSet.FieldByName('filename').AsString;
SaveDialog1.Execute;
if not SaveDialog1.Execute then Exit ;
try
//从数据库读出文件信息
MStream:=suiDBGrid2.DataSource.DataSet.CreateBlobStream(suiDBGrid2.DataSource.DataSet.FieldbyName('Files'),bmRead);
FileName :=suiDBGrid2.DataSource.DataSet.FieldByName('FileName').asString ;
//组合文件名
aFileName := SaveDialog1.FileName;
MStream.Position:=0;
GetMem(pImage, MStream.Size);
//创建文件
MFileStream := TFileStream.Create(aFileName, fmCreate);
MStream.Read(pImage^,MStream.Size);
MFileStream.Write(pImage^ ,MStream.Size);
FreeMem(pImage);

MFileStream.Free ;
MStream.Free ;
except
if(MStream<>nil)then MStream:=nil ;
if(MFileStream<>nil)then MFileStream:=nil ;
exit;
end;
ShowMessage(SaveSuccess);
end;
再用ShellExecute打开
soaringsouth 2003-10-16
  • 打赏
  • 举报
回复
//装载文件到流
MStream:=TMemoryStream.Create;
try
MStream.LoadFromFile(trim(edtfile.Text));
except
ShowMessage(OpenFileErr);
MStream.Free;
exit;
end;
.....

TBlobField(ADOTable1.FieldByName('files')).LoadFromStream(MStream);
try
ADOTable1.Post;
shaw_jansin 2003-10-16
  • 打赏
  • 举报
回复
不能用QUERY控件吗?
wooden954 2003-10-16
  • 打赏
  • 举报
回复
up

2,496

社区成员

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

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