Глава 28. Пакет LiveWire Pro________________________________681

тем управления базами данных установлена на сайте (Informix, Oracle, Sybase и др.). Часто такие запросы используются для построения новых баз данных. Однако такие запросы не могут использоваться в обход системы курсоров для возврата набора записей. Для получения данных должен использоваться встроенный механизм курсоров, а не прямые обращения через механизм передачи запросов.

Открытие и закрытие коннекции

Напомним, что CGI-скрипты запускаются при каждом HTTP-запросе. Процедура запуска требует определенных вычислительных затрат. В отличие от CGI-скриптов, приложения LiveWire остаются в работающем состоянии до тех пор, пока Web-мастер явно их не закроет. Преимущество такого подхода заключается в том, что приложения LiveWire Pro могут открывать коннек-цию с базой данных при их запуске и держать ее открытой продолжительное время.

Одним из первых действий, выполняемым приложением LiveWire Pro, является открытие коннекции с базой данных. Синтаксис записи такого действия следующий:

database.connec (dbType, servername,

username, password, databaseName);

Здесь парамет dbTypeможет принимать следующие значения:

+ ORACLE + SYBASE + INFORMIX + ILLUSTRA + ODBC

Параметрыservername, username, password, databaseNameописывают информацию, необходимую для доступа к базе данных.

Другие запросы, выполняемые через это приложение, — будь то запрос того же клиента, но для другой страницы, или же запрос другого клиента — используют ту же самую коннекцию с базой данных.Нарис. 28.4 показано взаимодействие нескольких приложений с базой данных. Отсутствие необходимости перезапуска приложения для выполнения каждого запроса улучшает производительность системы при выполнении ряда последовательных запросов.

Приложения могут проверять наличие коннекции с помощью метода connect о.В приводимом ниже коде показано, как выполнить открытие коннекции и проверить, что база данных найдена, и регистрация была успешно выполнена.

database.connect (INFORMIX, theServer, mmorgan, mySecretWord, demoDB);

if ('database.connect())