把一个图存入一个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

解决方案 »

  1.   

    1.方法
    你用一个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就不会产生这个错误