Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.04;
Скачать: CL | DM;

Вниз

Как вывести информацию (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-8901
Ольга
2002-01-16 14:28
2002.02.04
Генератор паролей


3-8770
maxi
2002-01-03 11:19
2002.02.04
Как в Делфи работать с разделителями полей к базе ASCII ?


4-9043
sandman
2001-11-20 14:42
2002.02.04
Вывод bitmap из ресурса


3-8749
$hade
2002-01-03 08:08
2002.02.04
Interbase +Transaction....


1-8869
Mr.Fox
2002-01-09 13:27
2002.02.04
Помогите плиз