ADOBlobStream := TADOBlobStream.Create(TBlobField(ADOQueryAll.FieldByName('LAWS_CONTENT')),bmRead);
if OpenDialog.Execute then
begin
ADOBlobStream.LoadFromFile(OpenDialog.FileName);
ADOBlobStream.Position := 0;
TBlobField(ADOQueryAll.FieldByName('LAWS_CONTENT')).LoadFromStream(ADOBlobStream);
end;
ADOBlobStream.Free;
关于blob字段的数据,最好是用两个getmem和getdata函数,其他的应该不好使。
给你一段类似的代码参考:
try
if adotbsql.FieldByName('feature').IsBlob then
begin
getmem(p3[i],s3);
if adotbsql.FieldByName('feature').GetData(p3[i]) then
//adotbTemp.FieldByName('feature').GetData(p3[i])
adotbTemp.Fields[3].GetData(p3[i])
else
showmessage('图像 is null');
freemem(p3[i]);
end;
……