|
Sybase
|
|
|
|
|
Продукты
|
|
|
|
|
Сообщества
|
|
|
|
|
Меню
|
|
|
|
|
Вход
|
|
|
|
|
Рассылка
|
|
|
|
|
Статистика
|
|
|
|
|
Возврат HTML из процедуры
|
Возврат HTML из процедурыСоздаем процедуру, которая формирует код HTML-страницы:
CREATE PROCEDURE sp_get_html()
RESULT(html_doc long varchar)
BEGIN
DECLARE @Content long varchar;
DECLARE @Tmp long varchar;
SET @Content = '<html><head><title>' ||
'Пример HTML-страницы' ||
'</title></head>' ||
'<body><table border="1">' ||
'<tr><td>Название таблицы' ||
'</td><td>Тип таблицы</td></tr>\n';
SELECT LIST('<tr><td>' || table_name || '</td><td>' || table_type ||
'</td></tr>', '\n' ORDER BY table_name)
INTO @Tmp
FROM SYS.SYSTABLE;
SET @Content = @Content || @Tmp ||
'</table></head></html>';
call dbo.sa_set_http_header( 'Content-Type', 'text/html' );
SELECT @Content;
END;
Создаем web service, который будет возвращать страницу для клиентского броузера:
CREATE SERVICE root TYPE 'RAW'
AUTHORIZATION OFF
USER DBA
AS CALL sp_get_html();
Запускаем ASA со следующими параметрами:
-xs http(port=80)
Запускаем броузер и в адресной строке набираем:
http://localhost
На заметку:
root является корневым web service и на него броузер попадает автоматически, когда идет по ссылкеhttp://<host>[:port]
Если задано другое имя web service, то для обращения к нему нужно ввести в адресной строке броузераhttp://<host>[:port]/<web service name>
Если в web service вызов CALL sp_get_html() заменить на SELECT * FROM sp_get_html() то ASA установит заголовок Content-Type страницы как 'text/plain' а не 'text/html', и в броузере отобразится текст кода HTML-страницы, а не сама страница (во многих браузерах).
Можно считать и отобразить готовую HTML-страницу с диска, еси в процедуре написать@Content = CALL xp_read_file('C:\WINDOWS\Web\tip.htm'); передавая процедуре xp_read_file в качестве параметра путь к HTML-странице на диске.
Можно получить HTML-страницу, автоматически сформированную ASA, если в создать web service таким образом:CREATE SERVICE root TYPE 'HTML'
AUTHORIZATION OFF
USER DBA
AS SELECT table_name, table_type
FROM SYS.SYSTABLE
ORDER BY table_name;
---
С уважением,
IKAR
|
Дата публикации: Monday 27 March 2006 18:30:40 Материал прочитан: 14980 раз(а) [ Назад ] |
|
|
|
|
|
|
Copyright©2005 . Все права защищены.
|