把一个图存入一个Blob字段中.代码:
var picture :tpicture;
begin
if OpenPictureDialog1.Execute then
begin
Query1.Edit;
picture:=Tpicture.Create;
picture.LoadFromFile(OpenPictureDialog1.FileName);
DBImage1.Picture.Assign(picture);
end;
保存时出
ora-22275指定lob定位器无效.
help me
var picture :tpicture;
begin
if OpenPictureDialog1.Execute then
begin
Query1.Edit;
picture:=Tpicture.Create;
picture.LoadFromFile(OpenPictureDialog1.FileName);
DBImage1.Picture.Assign(picture);
end;
保存时出
ora-22275指定lob定位器无效.
help me
你用一个TDatabase控件和一个TQuery控件,TDatabase中的BLOBSIZE值要大于你所写入的最大长度
Oracle中blob数据一定要先写空记录,然后修改,Oracle本身提供的例子中都是这么做的。
如果按你的要求,代码可以写为
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('INSERT myimages VALUE(:filename,EMPTY_BLOB())');
Query.ParamByName('filename').AsString := DBEdit1.Text;
Query.ExecSQL;
Query.SQL->Clear;
Query.SQL->Add('UPDATE myimages SET images=:pic WHERE filename=:filename');
Query.ParamByName("filename").AsString := DBEdit1.Text;
Query.ParamByName('pic').LoadFromStream(MyStream,ftOraBlob);;
Query.ExecSQL;
2.方法
或者你干脆换成ADO就可以了,ADO就不会产生这个错误