Форум: "Базы";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
ВнизКак вывести информацию (HTML) в WebBrowser из БД Access Найти похожие ветки
← →
dmitriyk (2002-01-04 04:20) [0]Подскажите пожалуйста !
Как из БД Access, вынять информацию в виде HTML, и запихнуть ее
в WebBrowser для просмотра, не создавая при этом файл на диске.
← →
Cobalt_ (2002-01-04 12:23) [1]Поконкретнее вопрос:
1) доступ к БД Access (форум БД)
2) работа с WebBrowser и CGI-BIN скриптами(ИМХО) - если не хочешь создавать файл (форум СЕТИ)
← →
kig (2002-01-04 14:06) [2]Посмотрите методы интерфейса WebBrowser.Document
Например - writeln
← →
dmitriyk (2002-01-05 02:23) [3]Для Cobalt_.
У меня в БД, есть поле, типа OleObject. В это поле, я впихнул файл (*.mht), как BLOB. Затем этот файл, с диска я удалил, специально, в целях эксперимента. Теперь, мне надо, прочитать из БД, из этого поля, эту информацию обратно. Но не создавая файл на диске, (это я могу сделать), мне надо впихнуть ее в WebBrouser, который в моей проге, для отображения в нем этой, прочитанной из БД, информации.
Смысл в том, чтобы НЕ СОЗДАВАТЬ файл на винте, для его отображения через WEBBrouser, а сразу впихнуть его WEBBr... ! Потому, что в БД такой информации много, и для каждой создавать файл, это будет, неверно, всетаки неправильно. Ведь, можно же както и по другому.
← →
kig (2002-01-06 09:40) [4]Ну и кто Вам мешает? Считываете информацию из blob поля (образ файла - наверно все-таки *.htm) и натравливаете на этот образ WebBrowser...
Только для того, что бы иметь доступ к WebBrowser.Document (IHTMLDocumnet(2)), проинициализуруйте WebBrowser примерно следующим образом (в терминах vb - дельфи не стоит):
WebBrowser.Navigate("about:blank")
wheel (not WebBrowser.ReadyState <> READYSTATE_COMPLETE)
sleep 100
doevents " в случае Д - Application.ProcessMessage
wend
← →
kig (2002-01-06 09:43) [5]Сорри)))
В предыдущем ответе в wheel not конечно ни к чему...)))
← →
dmitriyk (2002-01-06 16:35) [6]Вот вы пишете:
Ну и кто Вам мешает? Считываете информацию из blob поля (образ файла - наверно все-таки *.htm) и натравливаете на этот образ WebBrowser...
Так яж именно это и хочу, но я не знаю как это сделать
Как направить тот поток, которым я считываю свое BLOB поле, в мой
WEBBrouser !.
Вот моя процедурка, которая считывает поле и пишет информацию в файл. Этот файл затем, я могу присвоить свойству Navigate. Так у меня нет проблем. Но мне надо без файла, а сразу. Но КАК ?
procedure TForm1.WriteFromFieldToFile(Field : TField);
var
F: TFileStream;
Stream: TStream;
begin
with Query1 do
begin
Stream := (Field.DataSet as TCustomADODataSet).CreateBlobStream(Field, bmRead);
F := TFilestream.Create("E:\TEMP.hmt",fmCreate);
F.CopyFrom(Stream,Stream.Size);
F.Free;
Stream.Free;
end;
end;
Вызывается она просто: WriteFromFieldToFile(Поле в БД);
Подскажите пожалуйста по подробнее. Как мне это сделать.
Если не трудно, дайте исходный код, вроде моего.
← →
kig (2002-01-06 17:27) [7]Сходите сюда ))
http://www.sources.ru/delphi/delphi_twebbrowser_faq.shtml
Это решение оттуда
Вопрос: Как загрузить потоковые(stream) данные в WebBrowser не прибегая к открытию файла?
Ответ: Вот пример кода:
function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
begin
AStream.seek(0, 0);
Result := (WebBrowser1.Document as
IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;
Автор: Per Larsen
← →
dmitriyk (2002-01-06 22:08) [8]Слава богу, есть здвиги, но! как всегда, чтото да не так. На этот раз вот что. Загрузил я той процедуркой, что вы мне дали, мой поток. WEBBrouser его принял. Но, проблема в том, что WEBbr.. отображает их как TEXT, а не как графику.
Не одно так другое. :) Как мне теперь их нормально отобразить ?.
Вот моя процедура, которая это делает
procedure TForm1.KeyStoreClick(Sender: TObject);
var
Stream: TStream;
begin
with Query1 do
begin
Stream := (FieldByName("DataBlob").DataSet as TCustomADODataSet).CreateBlobStream(FieldByName("DataBlob"), bmRead);
WebBrowser1.Navigate("about:Blank");
LoadFromStream(Stream);
end;
Stream.Free;
end;
После нее, мой броузер отображает информацию как текстову. Почему?.
Кстати, спасибо за ссылку.
С праздничком !
← →
dmitriyk (2002-01-07 02:37) [9]Сдвиги есть. Но как всегда, вечно какая то проблема остается. На этот раз такая. Мой Броузер, поток глотает. Но выводит информацию как HTML текст. А не как обычно,в графике, как надо. Почему?.
Вот моя процедура, которая читает BLOB поле.
procedure TForm1.KeyStoreClick(Sender: TObject);
var
Stream: TStream;
begin
with Query1 do
begin
Stream := (FieldByName("DataBlob").DataSet as TCustomADODataSet).CreateBlobStream(FieldByName("DataBlob"), bmRead);
WebBrowser1.Navigate("about:Blank");
LoadFromStream(Stream);
end;
Stream.Free;
end;
После нее, WebBrowser - отображает ее как ТЕКСТ. Что на этот раз не так.?
К стати, за ссылку спасибо.
С праздничком.
← →
kig (2002-01-08 17:39) [10]Попробуйте модифицировать приведенную LoadFromStream так:
Выполнить
WebBrowser1.Document as
IPersistStreamInit).InitNew();
перед
(WebBrowser1.Document as
IPersistStreamInit).Load...
(по крайней мере в MSDN предлагается именно так)
Если это не поможет - превратите поток в строку и воспользуйтесь
методом write или writeln WebBrowser1.Document
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c