要用到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
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;