要用到Blob字段,最好同时用数据流作为媒介写入Blob的代码如下:
Query.SQL.Clear;
Query.Sql.Add('INSERT INTO 表名 (...,Blob字段名,...) VALUES (...,:Blob,...)');
Query.ParamByName(Blob)).LoadFromStream(Stream);
//还可以用方法LoadFromFile()直接保存文件中的数据
Query.SQL.ExecSQL; 从字段读出代码如下:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT ...,Blob字段名,... FROM 表名 WHERE ...');
Query.Open;
TBlobField(Query.SQL.FieldByName(Blob字段名)).SaveToStream(Stream);
//或(Query.ParamByName(Blob字段名) as TBlobFiedl).SaveToStream(Stream);
//或Stream=TBlobFieldStream.Create(TBlobField(Query.SQL.FieldByName(Blob字段名)),bmRead);
//保存到文件用SaveToFile(文件名) 更多参考请看这里:http://www.csdn.net/expert/topic/960/960982.xml?temp=.7559626
Query.SQL.Clear;
Query.Sql.Add('INSERT INTO 表名 (...,Blob字段名,...) VALUES (...,:Blob,...)');
Query.ParamByName(Blob)).LoadFromStream(Stream);
//还可以用方法LoadFromFile()直接保存文件中的数据
Query.SQL.ExecSQL; 从字段读出代码如下:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT ...,Blob字段名,... FROM 表名 WHERE ...');
Query.Open;
TBlobField(Query.SQL.FieldByName(Blob字段名)).SaveToStream(Stream);
//或(Query.ParamByName(Blob字段名) as TBlobFiedl).SaveToStream(Stream);
//或Stream=TBlobFieldStream.Create(TBlobField(Query.SQL.FieldByName(Blob字段名)),bmRead);
//保存到文件用SaveToFile(文件名) 更多参考请看这里:http://www.csdn.net/expert/topic/960/960982.xml?temp=.7559626
解决方案 »
- 文件关联的问题。
- delphi中有没有宏的概念啊?
- 请教如何用wsock32.dll中的send函数发送二进制数组?80分相赠
- 如何在B程序中获取A程序中的某些内容(如StringGrid中)
- 不知道能不能实现.300分
- 推荐一delphi视频教程
- delphi调用WinExec或ShellExecute执行了外部的数据操作,该如何让数据操作完毕后再继续执行delphi里面的代码
- qrimage 如何显示多条记录图片? 100分
- 请教高手,请问如何让光盘自动播放? 象delphi安装时那样?
- 能否先介绍一下Delphi 6以及DBExpress的东东(谢绝英文)
- 请问一下如何动态调用一个中的函数(dll与文件名存在数据库中)
- 在线等待,高分!如何扑获F1----F12键!给出部分代码
procedure TForm1.Button3Click(Sender: TObject);
var
fn: string;
begin
if OpenDialog1.Execute then begin //打开文件
fn := OpenDialog1.FileName;
//显示图象
Image1.Picture.loadfromfile(fn);
// 图象文件添加到库表中
table1.Append ;
Table1FileName.AsString := ExtractFileName(fn);
Table1Blob.assign(image1.picture);
table1.Post ;
end;end;//显示数据库中保存的图片
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
if not Table1Blob.IsNull then begin
Image1.Picture.assign(table1Blob);
end;end;