Конференция "Базы" » Запись BLOB из Delphi в Oracle 9.2
 
  • миникодер (18.11.08 16:35) [0]
    procedure TfrmReports.SaveReportToDB(Report: TFrxReport);
    Var
     Stream1: TStream;
     LOB: TLOBLocator;
    begin
      oqUpdateTemplate.ClearVariables;
      try
        odsReports.Edit;
        try
          Stream1 := odsReports.CreateBlobStream(odsReports.FieldByName('template'), bmWrite);
          Report.SaveToStream(Stream1);

          Report.SaveToFile(ExtractFilePath(Application.ExeName)+'\tempreport.fr3');
          LOB := TLOBLocator.CreateTemporary(DMMain.OracleSession, otBLOB, True);
          Lob.LoadFromFile(ExtractFilePath(Application.ExeName)+'\tempreport.fr3');

          oqUpdateTemplate.SetComplexVariable('template', LOB);
          oqUpdateTemplate.SetVariable('id', odsReportsID.AsInteger);
          oqUpdateTemplate.Execute;
          DMMain.OracleSession.Commit;

        except
          DMMain.OracleSession.Rollback;
          odsReports.Cancel;
          Application.MessageBox('Ошибка записи отчета!', 'Внимание', MB_ICONERROR);
          raise;
        end;
        odsReports.Post;
      finally
        Stream1.Free;
        LOB.Free;
      end;

    end;

    при записи в базу выдает такую ошибку:
    update reports set template = :template where id = :id

    :ID = 1
    Oracle error occurred: 600 (ORA-00600: internal error code, arguments:
    [kokegPinLob1], [], [], [], [], [], [], [])
    ----------------------------------
    Timestamp: 15:29:39.762

    Successful rollback.

    Подскажите, что я делаю нетак?
    Заранее благодарен!
  • Правильный$Вася (18.11.08 16:55) [1]

    > Oracle error occurred: 600 (ORA-00600: internal error code,
    >  arguments: [kokegPinLob1],

    типичная ошибка ядра
    лечится патчеванием как сервера, так и клиента
    хотя патча можети не быть
    читай металинк
  • Val © (18.11.08 22:51) [2]
    + к первому посту: желательно обновиться до 9.2.0.6\9.2.0.8, если не патчили.
 
Конференция "Базы" » Запись BLOB из Delphi в Oracle 9.2
Есть новые Нет новых   [134477   +39][b:0][p:0]