3. Операторы Парсера
Формат вызова
^server[параметры_подключения_к_серверу;код]
Аргументы
параметры_подключения_к_серверу данные, необходимые для подключения к SQL-серверу.
код код, обрабатываемый Парсером при установленном подключении.
Описание
Оператор устанавливает подключение к SQL-серверу. Переданный во втором аргументе код обрабатывается Парсером, причем для обращения к базе данных используется установленное подключение. В настоящей версии Парсера поддерживается подключение к MySQL Server, Oracle или источникам данных ODBC.
Замечание. Возможность работы с тем или иным сервером баз данных зависит от того, какой вариант Парсера вы используете. Из этого следует, что один и тот же шаблон не может обращаться, например, и к Oracle, и к MySQL.
Параметры подключения к MySQL:
user:password@host:port/database, где
- user имя пользователя;
- password пароль;
- host имя или адрес компьютера в сети;
- port номер порта (указывать не обязательно);
- database имя базы данных.
Параметры подключения к серверу Oracle:
user:password@oracle_connection_string, где
- user имя пользователя;
- password пароль;
- oracle_connection_string строка параметров для подключения к серверу Oracle.
Параметры для подключения к источникам данных ODBC:
user:password@odbc_datasource, где
- user имя пользователя;
- password пароль;
- odbc_datasource имя источника данных.
Замечание. При работе с Oracle все SQL-запросы внутри оператора server выполняются в рамках одной транзакции. После успешного выполнения всех SQL-запросов транзакция фиксируется. При первой ошибке происходит откат транзакции, а последующие SQL-запросы игнорируются.
Замечание. Данные в базе данных MySQL должны быть представлены в кодировке koi8-r, а в Oracle и ODBC в кодировке Windows-1251.
Замечание. В некоторых случаях бывает нужно обращаться из Windows-приложений к базе данных, управляемой сервером MySQL. При этом база данных может использоваться не только Парсером. В таком случае для работы с базой данных в кодировке koi8-r в настройках ODBC-драйвера следует задать соответствующее преобразование кодировок:
SQL command on connect: set CHARACTER SET cp1251_koi8.
Примеры
Подключение к серверу баз данных MySQL и вывод списка всех таблиц базы данных.
|
^server[site_user:JH12tyKNP@data/newspaperdb; ^sql[show tables] ^menu[^item[0]<BR>] ]
|
|
|
|
Формат вызова
^sql[запрос]
^sql[запрос;количество_записей]
^sql[запрос;количество_записей;пропустить]
Аргументы
запрос запрос на языке SQL.
количество_записей количество записей, которое будет взято из результатов запроса.
пропустить количество пропускаемых записей.
Описание
Оператор отправляет запрос SQL-серверу и записывает полученные результаты в текущую таблицу. Столбцам таблицы присваиваются имена полей запроса. Если указано количество записей, допустим, равное 12, то в текущую таблицу будут загружены только первые двенадцать записей. Если несколько первых записей требуется пропустить, укажите их количество в качестве значения третьего аргумента.
Внимание! Вне зависимости от содержания SQL-запроса, при обработке оператора sql содержимое текущей таблицы теряется.
Замечание. Текст запроса обрабатывается на уровне обработки sql (см. п. 1.6).
Замечание. Не рекомендуется использовать запросы вида SELECT *, поскольку они могут привести к загрузке большого объема ненужных для работы данных. Кроме того, в большинстве случаев, формулируя SQL-запрос, кодер должен знать, какие данные он получит в ответ: он ведь собирается с ними дальше работать.
Примеры
Приведенный ниже фрагмент кода загружает в текущую таблицу первые 50 новостей, а затем выводит ссылки на них.
|
^context[news; ^server[site_user:JH12tyKNP@data/newspaperdb; ^sql[SELECT id,title FROM news WHERE active=1;50] ^menu[ <A HREF="details.html?id=^item[id]">^item[title]</A><BR> ] ] ]
|
|
|
|
|