我是用 query 实现的 考虑到使用标准数据集,附件大了和记录多了打开速度慢 在标准数据集的字段上取消了附件字段的选择)
上传:
ID := DataSetBroker.DataSet.FieldByName('NOR_TABLE_NO').AsString;
Query := TQuery.Create(nil);
Query.ConnectionString:='DATABASEURL=Biz:\SCXTBGPT\SCXTPTSJK.DATABASE';
Query.Close;
Query.CommandText:='update TAB_NOR_TABLE set NOR_TABLE_ANNEX1=:NOR_TABLE where NOR_TABLE_NO = '''+ID+'''';
Query.Params.ParamByName('NOR_TABLE').loadfromfile(OpenDialog1.FileName,TFieldType.ftBlob);
Query.Execute;
下载:
var
Query:TQuery;
ID:String;
begin
if DataSetBroker.DataSet.RecordCount>0 then
begin
ID := DataSetBroker.DataSet.FieldByName('NOR_TABLE_NO').AsString;
Query := TQuery.Create(nil);
Query.ConnectionString:='DATABASEURL=Biz:\SCXTBGPT\SCXTPTSJK.DATABASE';
Query.CommandText := 'select NOR_TABLE_ANNEX1 from TAB_NOR_TABLE where NOR_TABLE_NO = '''+ID+'''';
Query.Open;
SaveDialog1.FileName:=DataSetBroker.Dataset.FieldByName('NOR_File_Name').AsString;
if(SaveDialog1.Execute) then
begin
try
TBlobField(Query.FieldByName('NOR_TABLE_ANNEX1')).SaveToFile(SaveDialog1.FileName);
except
raise exception.Create('文件保存失败!');
end;
end;
Query.Close;
Query.Free;
end;
end;
发现上传后,在下载就是乱码了,不知道是什么原因?
(补充说明下:如果使用标准数据集加上附件字段
TBlobField(DataSetBroker.Dataset.FieldByName('NOR_TABLE_ANNEX1')).LoadFromFile(OpenDialog1.FileName); 再用上面的下载代码就不会有乱玛) |