Глава 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())