Доступ к базе данных под управлением Ingres
. Система управления базами данных Ingres является одной из популярных CУБД, работающих в среде операционной системы UNIX. Использование технологии разработки CGI-скриптов помогает построить современный дружественный интерфейс для пользователей WWW к базам данных под управлением данной СУБД. Начнем обсуждение этой возможности с простейших способов обращения с СУБД.
#!/bin/sh echo Content-type: text/plain echo ingres polyn < query #The end of script
В данном случае запрос заранее подготовлен в виде файла query. Скрипт не получает данных из интерфейсной программы, и действует по жесткой схеме запроса. Аналогично можно вызвать скрипт, выполняющий утилиты Ingres:
#!/bin/sh echo Content-type: text/plain echo helpr polyn #The end of script
В данном случае скрипт возвращает справку по базе данных polyn.
Естественно, что можно использовать не только тип text/plain, но и text/html. Пример такого использования приведен ниже:
#!/bin/sh echo Content-type: text/html echo echo '< PRE> ' helpr polyn situat echo '< /PRE> ' #The end of script
Выполнение жестких запросов не очень интересно для пользователя. Он обычно жаждет сформулировать свой собственный запрос. В следующем примере скрипту передается запрос методом доступа GET, который помещен в переменную окружения QUERY_STRING:
#!/bin/sh echo Content-type: text/html echo echo '< PRE> ' echo $QUERY_STRING | tr "+" " " | ingres polyn echo '< /PRE> ' #The end of script
Прежде всего данные посылаются на предобработку, т.к. все пробелы в запросе заменяются на знак "+" в соответствии с правилами HTTP. После этого фильтра данные поступают на стандартный ввод интерпретатора Ingres и результат работы возвращается пользователю.
Вообще говоря необходима фильтрация и на выходе после Ingres, т.к. вывод содержит неотображаемые символы, например символ '/007', который лучше заменить на что-нибудь отображаемое.
Отчеты могут быть достаточно большими, поэтому имеет смысл ограничить отчет определенным числом строк: