保存文件到数据库和读取文件至本地

chdaner 2009-10-14 09:49:31
代码片段如下,保存文件到数据库没问题,但是读取文件到本地的时候,为什么读取出来的文件打开后全是同一个文件?应该如何做,请高手指教,谁有没有可用的代码?

AdoQuery1.SQL.Add('update T_dropdownexp set addition=:p'); //保存附件至数据库
Adoquery1.Parameters.ParamByName('p').LoadFromFile(extractfilename(opendialog1.FileName),ftBlob);
AdoQuery1.ExecSQL;


procedure TForm1.Button11Click(Sender: TObject); //载入附档
var MS: TMemoryStream;
ext:string;
begin
AdoQuery1.Close;
AdoQuery1.SQL.Add('select * from T_dropdownexp');
AdoQuery1.Open;
Ms:=TMemoryStream.Create;
//Ms.Position:=0;
ext:=trim(edit24.Text); //edit中显示的为数据库中文件的扩展名,通过双击记录显示出来
savedialog1.Filter:='*'+ext;
if savedialog1.Execute then begin //将附件保存至本地
if extractfileext(savedialog1.FileName)<>ext then
savedialog1.FileName:=changefileext(savedialog1.FileName,ext);
TBlobField(AdoQuery1.FieldByName('addition')).SaveToFile(savedialog1.FileName);
end;
//MS.Free;
end;
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2009-10-14
  • 打赏
  • 举报
回复
如果你确保每次选出的不是同一个记录的话,那就是你保存的有问题,都是同一个文件
chdaner 2009-10-14
  • 打赏
  • 举报
回复
改成这样还是不行啊,no是唯一的。

AdoQuery1.Close;
AdoQuery1.SQL.Add('select * from T_dropdownexp where no='''+edit1.text+'''');
AdoQuery1.Open;

bdmh 2009-10-14
  • 打赏
  • 举报
回复
TBlobField(AdoQuery1.FieldByName('addition')).SaveToFile(savedialog1.FileName);
这始终是保持adoquery的第一条记录的附件,AdoQuery1.open后,指向第一条记录
diruser 2009-10-14
  • 打赏
  • 举报
回复
同意,[ bdmh ]的

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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