Query.Close; Query.SQL.Clear; Query.SQL.Add('SELECT ...,Blob字段名,... FROM 表名 WHERE ...'); Query.Open; TBlobField(Query.SQL.FieldByName(Blob字段名)).SaveToStream(Stream); //或(Query.FieldByName(Blob字段名) as TBlobFiedl).SaveToStream(Stream); //或Stream=TBlobFieldStream.Create(TBlobField(Query.SQL.FieldByName(Blob字段名)),bmRead); //保存到文件用SaveToFile(文件名)
Image属于Blob类型(Binary Large Objects ,大型二进制对象),其读写规则如下:写入Blob字段:
Query.SQL.Clear;
Query.Sql.Add('INSERT INTO 表名 (...,Blob字段名,...) VALUES (...,:PBlob,...)');
Query.ParamByName(Blob)).LoadFromStream(Stream);
//用方法LoadFromFile() 可以直接把文件数据写入数据库
Query.SQL.ExecSQL;
读出Blob字段:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT ...,Blob字段名,... FROM 表名 WHERE ...');
Query.Open;
TBlobField(Query.SQL.FieldByName(Blob字段名)).SaveToStream(Stream);
//或(Query.FieldByName(Blob字段名) as TBlobFiedl).SaveToStream(Stream);
//或Stream=TBlobFieldStream.Create(TBlobField(Query.SQL.FieldByName(Blob字段名)),bmRead);
//保存到文件用SaveToFile(文件名)
应改为
Query.ParamByName('PBlob').LoadFromStream(Stream);