代码片段如下,保存文件到数据库没问题,但是读取文件到本地的时候,为什么读取出来的文件打开后全是同一个文件?应该如何做,请高手指教,谁有没有可用的代码?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;
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;
解决方案 »
- SkinAdapter如何安装呢?
- GetPrivateProfileString的问题
- 两个quickreport问题
- C语言中的(BYTE* lpChar)在PASCALL中如何用?因为要用C写的DLL中的一个函数,其中的一个参数就是这样
- 有一字符串,包括完整的文件路径和文件名,例如“c:\temp\hah.doc”这样的字符串。如何获取其中的文件名“hah''不要后缀名的?
- JPEG压缩
- 一个数据显示的问题
- CSDN真让我失望,大家都喜欢回答无聊的问题(不要回复)
- 怎么的到今天是今年中的第多少个星期?急
- 如何利用query.sql对两张表进行查询??
- delphi调VC++
- 哪位能给个穷举的算法?比如我有(a,b,c,d)几个数.现在要组成3位的或2位的?
这始终是保持adoquery的第一条记录的附件,AdoQuery1.open后,指向第一条记录
AdoQuery1.SQL.Add('select * from T_dropdownexp where no='''+edit1.text+'''');
AdoQuery1.Open;