Оператор GET

Оператор предназначен для присваивания указанным переменным значений определенных полей в соответствии с ранее заданным запросом на доступ.

 

GET <переменная> = <имя поля>

 {, <переменная> = <имя поля>}

 {, RECNO <числовое выражение>}

 

В операторе GET указывается, каким переменным необходимо присвоить значение указанных полей. Имя переменной отделяется от имени поля символом "=". Количество параметров в списке не ограничено и значение одного поля может присваиваться нескольким переменным.

Первый оператор GET после оператора TABLE возвращает значения полей первой записи базовой таблицы оператора TABLE, отвечающей заданным условиям. Каждый последующий оператор GET приводит к обращению к следующей записи. Такой порядок обращения к записям можно изменить использованием параметра RECNO, в котором результат <числового выражения> указывает номер записи РЕЗУЛЬТИРУЮЩЕЙ ТАБЛИЦЫ, к полям которой должен быть обеспечен доступ. Т.е. если в программе встречается последовательность операторов:

 

TABLE "tab1", WHERE "mashine" > 12

GET Number = "mashine", Name = "MashName", RECNO 2

 

в переменные Number и Name будут возвращены данные из полей таблицы "tab1" второй записи, удовлетворяющей условию "mashine" > 12. Параметр RECNO всегда должен быть последним в операторе.

Если ранее в программе задана переменная кода возврата (оператор BASERES), то после оператора GET эта переменная содержит номер записи, из которой производилась выборка данных в РЕЗУЛЬТИРУЮЩЕЙ ТАБЛИЦЕ. Если записей, удовлетворяющих заданным условиям больше нет, переменная кода возврата принимает значение < 0. Такая ситуация может возникнуть в следующих случаях:

  • записей, удовлетворяющих заданному в операторе TABLE условию, в таблице нет;
  • предыдущее обращение к таблице производилось к последней записи, удовлетворяющей данному условию;
  • номер записи в параметре RECNO превышает количество записей базовой таблицы, удовлетворяющих заданному условию.

Если переменная кода возврата не задана, при возникновении такой ситуации выдается сообщение об ошибке.

 

Подсистема SDB