BLOB'ы - загрузка и выгрузка
Господа!
Хотелось бы на этом форуме увидеть наконец подробную информацию о загрузке и выгрузке отчётов в БД. Ничего толкового до сих пор не нашёл.
Случай с TTable и ему подобными примитивен, и вряд ли находит у кого-нибудь практическое применение в проектах.
У меня есть TADOQuery. Каким образом через него можно сохранить отчёт в БД и потом считать его оттуда? Вернее, интересует больше вопрос про запись, т.к. в этом случае Query должно находиться в режиме обновления.
Заранее всем благодарен.
Хотелось бы на этом форуме увидеть наконец подробную информацию о загрузке и выгрузке отчётов в БД. Ничего толкового до сих пор не нашёл.
Случай с TTable и ему подобными примитивен, и вряд ли находит у кого-нибудь практическое применение в проектах.
У меня есть TADOQuery. Каким образом через него можно сохранить отчёт в БД и потом считать его оттуда? Вернее, интересует больше вопрос про запись, т.к. в этом случае Query должно находиться в режиме обновления.
Заранее всем благодарен.
Комментарии
Table.Edit;
frreport.SaveToBlobField(TableBlobField);
Table.Post;
А кроме TTable есть какие-то варианты?
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;
Спасибо тебе, добрый человек!
То, что доктор прописал