Базы данных Oracle - статьи


Организация PL/SQL-процедуры для обработки запросов Web-браузера - часть 2


-- получение URL изображение карты l_http_resp := utl_http.get_response(l_http_req); utl_http.read_text(l_http_resp, l_value); response := sys.xmltype.createxml (l_value); utl_http.end_response(l_http_resp); img_url := response.extract('/map_response/map_image/map_content/@url').getstringval();

-- генерация HTML-страницы htp.htmlOpen; htp.headOpen; htp.title( 'Демонстрационное приложение' ); htp.headClose; htp.bodyOpen;

htp.tableOpen('border=0');

htp.prn('<tr>'); -- ячейка таблицы, содержащая изображением карты htp.prn('<td colspan=6><img border=1 src='''img_url''' width="640" height="480"></td>'); htp.prn('</tr>');

-- ячейки таблицы, содержащие вызовы данной PL/SQL-процедуры для организации навигации htp.prn('<tr>'); htp.prn('<td><img src="in.png" alt="Увеличить" onclick="location=''web.map_view?map_size='to_char(size_par-delta_)'&map_x='map_x'&map_y='map_y'""></td>'); htp.prn('<td><img src="out.png" alt="Уменьшить" onclick="location=''web.map_view?map_size='to_char(size_par+delta_)'&map_x='map_x'&map_y='map_y'""></td>'); htp.prn('<td><img src="left.png" alt="Влево" onclick="location=''web.map_view?map_size='map_size'&map_x='to_char(x_par+delta_)'&map_y='map_y'""></td>'); htp.prn('<td><img src="up.png" alt="Вверх" onclick="location=''web.map_view?map_size='map_size'&map_x='map_x'&map_y='to_char(y_par+delta_)'""></td>'); htp.prn('<td><img src="down.png" alt="Вниз" onclick="location=''web.map_view?map_size='map_size'&map_x='map_x'&map_y='to_char(y_par-delta_)'""></td>'); htp.prn('<td><img src="right.png" alt="Вправо" onclick="location=''web.map_view?map_size='map_size'&map_x='to_char(x_par-delta_)'&map_y='map_y'""></td>'); htp.prn('</tr>');

htp.tableClose;

htp.bodyClose; htp.htmlClose;

END; ----------------------------------------------------------------------------------------

Связка Web-браузер, Web-сервер и PL/SQL-процедура работает по рекурсивному принципу, так как каждый раз вновь генерируемая процедурой HTML-страничка содержит обратный вызов самой PL/SQL-процедуры, но уже с модифицированными относительно текущего состояния параметрами вызова. Это обеспечивает управление логикой запросов MapViewer и обеспечивает навигацию по плану посредством серии запросов данной HTML-страницы.




Начало  Назад  Вперед



Книжный магазин