Язык программирования баз данных Informix-4GL


Общие принципы работы с SQL в Informix-L


В Informix-4GL операторы SQL встраиваются в исходную программу так, как если они были бы выполняемыми операторами ее основного языка.

Выполнение оператора SQL фактически является вызовом сервера базы данных. Информация должна передаваться от программы-клиента программе-серверу и возвращаться обратно. Часть этих взаимодействий осуществляется через так называемые главные переменные, посредством которых передаются входные данные для SQL-описаний и возвращаются результаты запроса. Ни при объявлении, ни при использовании внутри SQL-описаний главные переменные в языке Informix-4GL никак не выделяются и не отличаются от обычных переменных языка Informix-4GL. SQL-описания в программе на языке Informix-4GL так же, как и главные переменные, никак не выделяются.

Для обработки ошибок, связанных с выполнением SQL-запросов в программе на языке Informix-4GL, доступна структура SQLCA, описанная в прил. А [5]. Доступ к отдельным полям структуры выполняется обычным образом (sqlca.sqlcode, sqlca.sqlerrd[3] и т.д.). Переменная sqlca.sqlcode доступна также в 4GL-программе под именем STATUS, если проверка значения STATUS выполняется непосредственно после SQL-запроса. При этом STATUS устанавливается в 0, если оператор выполнен правильно, в отрицательное значение в случае ошибки и равен NOTFOUND (100), если операторы Select или Fetch не нашли никаких строк данных. Если переменная STATUS проверяется после 4GL-оператора, она содержит код завершения последнего оператора языка Informix-4GL.

К простейшим формам SQL-запросов относятся операторы SELECT, возвращающие единственную строку, а также SQL-операторы, выполняющие простейшие действия по модификации базы данных без использования аппарата курсора.

Единственным отличием приведенных выше SQL-запросов от интерактивных SQL-операторов [7,8] является наличие спецификатора Into, задающего главные переменные, которые используются как получатели данных и в условии Where. Если записанный выше оператор Select производит более одной строки данных, то сервер базы данных возвратит код ошибки.


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



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