with SysDM.OraqryReaderInfoData do
    begin
      SQL.Add('begin');
      SQL.Add('update manager.readers set reader_photo= empty_blob()' +
        ' where reader_barcode = :BarCode;');
      SQL.Add('commit;');
      SQL.Add('end;');
      ParamByName('BarCode').AsString := Trim(A_sBarCode);
      ExecSQL;
      Close;
      SysDM.OraSession1.StartTransaction;
      SQL.Text := 'update manager.readers set reader_photo = :photo' +
                  ' where reader_barcode = :BarCode';
      ParamByName('BarCode').AsString := Trim(A_sBarCode);
      ParamByName('photo').LoadFromStream(A_msStream,ftBlob);
      try
        ExecSQL;
        SysDM.OraSession1.Commit;
        Result := True;
      except
        on E:Exception do
        begin
          WriteLog('Melinets_SaveReaderPhoto/' + E.Message);
          SysDM.OraSession1.Rollback;
        end;
      end;
      Close;
    end;我的代码是这样写的,但是我存不上照片。数据库是oracle unicode 照片字段是blob。
谁能帮帮我?

解决方案 »

  1.   

    TBlobField(ClientDataSet1.FieldByName('aa')).LoadFromFile();//读
    TBlobField(ClientDataSet1.FieldByName('aa')).SaveToFile();  //取
      

  2.   

    代码看起来没问题啊,是不是A_msStream的处理上出了问题?
      

  3.   

      msStream := TMemoryStream.Create;
      img111.Picture.Graphic.SaveToStream(msStream);
      msStream.Position := 0;
      bRst := SaveReaderPhoto(Trim(edtBarCode112.Text),msStream);A_msStream是这样写的。
      

  4.   

    代码修改成如下试下,如果还是不行把错误贴出来。
      msStream := TMemoryStream.Create;
      msStream.Clear;
      img111.Picture.Bitmap.SaveToStream(msStream);
      bRst := SaveReaderPhoto(Trim(edtBarCode112.Text),msStream);
      

  5.   

    我的照片是jpg格式的。我刚才改成  img111.Picture.Bitmap.SaveToStream(msStream);了。不但没存上。而且照片那里最后不显示出来了。应该是格式不对吧