BLOB'ы - загрузка и выгрузка

отредактировано 07:15 Раздел: FastReport 2.xx VCL
Господа!
Хотелось бы на этом форуме увидеть наконец подробную информацию о загрузке и выгрузке отчётов в БД. Ничего толкового до сих пор не нашёл.
Случай с TTable и ему подобными примитивен, и вряд ли находит у кого-нибудь практическое применение в проектах.
У меня есть TADOQuery. Каким образом через него можно сохранить отчёт в БД и потом считать его оттуда? Вернее, интересует больше вопрос про запись, т.к. в этом случае Query должно находиться в режиме обновления.
Заранее всем благодарен.

Комментарии

  • tinkovtinkov Киев
    отредактировано 07:15
    А в чем проблема?

    Table.Edit;
    frreport.SaveToBlobField(TableBlobField);
    Table.Post;
  • отредактировано 07:15
    А в том проблема, что не хотелось бы из-за этого добавлять в проект TTable.
    А кроме TTable есть какие-то варианты?
  • отредактировано 07:15
    procedure SaveReport(report_id:Integer);
    var Stream:TMemoryStream;
    begin
    Stream:=TMemoryStream.Create;
    try
    frReport.SaveToStream(Stream);
    Query.SQL.Clear;
    Query.SQL.Add('insert into REPORTS (report_id,report_body) values (:report_id,:report_body)');
    Query.ParamByName('report_id').AsInteger:=report_id;
    Query.ParamByName('report_body').LoadFromStream(Stream,ftBlob);
    Query.ExecSQL;
    finally
    Stream.Free;
    end;
    end;

    procedure LoadReport(report_id:Integer);
    var Stream:TMemoryStream;
    begin
    Stream:=TMemoryStream.Create;
    try
    Query.SQL.Clear;
    Query.SQL.Add('select * from REPORTS where report_id=:report_id');
    Query.ParamByName('report_id').AsInteger:=report_id;
    Query.Open;
    TBlobField(Query.FieldByName('report_body')).SaveToStream(Stream);
    frReport.LoadFromStream(Stream);
    finally
    Query.Close;
    Stream.Free;
    end;
    end;
  • отредактировано 07:15
    2Vano
    Спасибо тебе, добрый человек!
    То, что доктор прописал ;)

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.