我现在有一个文件Drawing1.dwg,他是autocad的图片类型,我通过autocad的ocx可以把Drawing1.dwg防在我的界面上,就象image一样。现在我想把他保存到sqlserver的blob类型字段中,请问我该怎么做。
另外,我怎么从blob字段中读取该文件,并得到他的文件名称?
另外,我怎么从blob字段中读取该文件,并得到他的文件名称?
解决方案 »
- 求dbgrideh for delphi2007
- 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
- 如何调用windows函数,获取一个Activex上输出的文本内容
- 初学delphi,想问问delphi中的属性到底有什么用?
- 多线程处理
- 请问在Dbgrid里面可不可以实现两列相加??
- 一个奇怪的汇总问题
- 我想在程序里面显示一些Windows自带的系统功能,比如ODBC选择数据源的功能,请问如何实现?
- 遇到了麻烦,请大家帮帮忙。
- 如何继承TLabel的事件?
- 怎么用delphi实现把autocad文件转换为.bmp文件。(提供思路者皆有分)
- 关于小数点的输入问题(怎么这么奇怪)。
ADOtable1.Open;
ADOtable1.Edit;
TBlobField(ADOtable1.FieldByName('photo')).LoadFromFile('C:\Drawing1.dwg');
ADOtable1.Post;从数据库中读图片
ADOquery1.Open;
TBlobField(ADOquery1.FieldByName('photo')).SaveToFile('C:\Drawing1.dwg');
(Query.FieldByName('Image') as TBlobField).SaveToFile('C:\Drawing1.dwg');把图片写入的数据库
Query.Sql.Text:=‘insert into pubreport(Image) value(:Image)'
Query.ParamByName('Image').LoadFromFile('C:\Drawing1.dwg',ftBlob);
Query.ExecSQL;
query1.close;
query1.sql.clear;
query1.sql.add('insert into 表名(blob字段名)values(:cs)');
Query1.Parameters.ParamByName('cs').DataType:=ftString;
Query1.Parameters.ParamByName('cs').loadfromfile(Edit.Text,ftblob); //edit.text中是文件路径
query1.execsql;
读取:
TblobField(Query1.FieldByName('blob字段名')).SavetoFile(TempFileName);//Tempfilename为临时文件名
var
OpenDlg : TOpenDialog;
begin
Result := False;
OpenDlg := TOpenDialog.Create(nil);
OpenDlg.Filter := 'BMP AND JPEG File|*.BMP;*.JPG';
if OpenDlg.Execute then
begin
TBlobField(ATable.FieldByName(AFieldName)).LoadFromFile(OpenDlg.FileName);
Result := True;
end;
OpenDlg.Free ;
end;function LoadImageToFieldS(ATable : TTable;AFieldName : string):Boolean;
var
OpenDlg : TOpenDialog;
Stream : TFileStream;
begin
Result := False;
OpenDlg := TOpenDialog.Create(nil);
OpenDlg.Filter := 'BMP AND JPEG File|*.BMP;*.JPG';
if OpenDlg.Execute then
begin
Stream := TFileStream.Create(OpenDlg.FileName,fmOpenRead);
TBlobField(ATable.FieldByName(AFieldName)).LoadFromStream(Stream);
Result := True;
end;
OpenDlg.Free ;
end;