Метод GetAndDeleteRow возвращает строку из таблицы данных и удаляет ее. Если будет найдено несколько строк, то будет возвращена только первая, (SELECT TOP(1)...), и затем удалена.

Метод удобен для работы с одноразовыми данными, такими как промокоды или купоны. Например, каждый подписчик может получить из таблицы данных уникальные значения. Эти значения не могут быть использованы повторно, так как удаляются сразу после использования.

Данный метод имеет схожие с методом GetRows параметры. Могут быть выбраны отображаемые столбцы и настроены фильтры.

Сигнатура метода

row = GetAndDeleteRow(table, columns, filters)

Параметры метода

Параметр Тип Описание
table string Обязательное. Название таблицы.
columns
array of string Необязательное. Массив столбцов, которые будут выбраны. По умолчанию все столбцы.
filters array of Filter objects Необязательное. Массив объектов, задающих параметры раздела WHERE запроса SELECT. Используйте этот параметр, чтобы ограничить выбранные записи теми, что подходят вашим критериям. Если фильтры не заданы, критерии не будут применены. Если задано несколько фильтров, возвращенные записи будут соответствовать всем критериям (как при применении логического AND).
row array of key-value pairs Возвращает значение. Массив записей. Каждая запись - это массив пар “ключ => значение” (“имя столбца => значение столбца”). Имя столбца - строка (string). Тип значения столбца зависит от типа базы данных. Массив будет пустым, если в таблице нет данных.

Строки могут быть перечислены через проход массива, например, выведены в виде HTML. Смотрите примеры для дополнительной информации..

Параметры объекта Filter

Параметр Тип Описание
Name string Column name
Modifier enumeration Модификатор операции. Может быть следующим:
  • EQ (равно, "=")
  • GT (больше чем, ">")
  • GE (больше или равно, ">=")
  • LT (меньше чем, "<")
  • LE (меньше или равно, "<=")
  • LIKE (SQL LIKE оператор)
  • NE (не равно, "<>")
Value object Значение столбца. Тип значения зависит от типа столбца. Например, когда происходит фильтрация по номеру столбца, должен использоваться тип integer, для текстовых столбцов - string и т.д. Также возможны простые преобразования типов. Например, string "123" отображает правильное целое integer значение 123. Это работает для дат, чисел с плавающей запятой и т.д...

Важно: обычно объекты Filter создаются с помощью наиболее подходящих конструкторов, для дополнительных сведений смотрите примеры.

Использование значений, полученных методом GetAndDeletRow.

Значения, возвращаемые методом GetAndDeleteRow,- это массивы значений столбцов (пары "ключ-значение"). Чтобы получить значения нужно обойти масив или же получить значения напрямую через индексы.

Обход столбцов массива

Этот метод удобен, когда необходимо показать все столбцы, возвращаемые методом. Возвращаемые данные принимаем за массив и, чтобы его отобразить, используем атрибут 'each'.

<table>
  <tr>
    <td each="var column in GetAndDeleteRow('MyCouponsTable')">
      ${column.Value}
    </td>
  </tr>
</table>

2.2. Прямой доступ к столбцам

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

<var row="GetAndDeleteRow('MyCouponsTable')"/>

<div>Column no 1: ${row['MyFirstColumn']}</div>
<div>Column no 2: ${row['MySecondColumn']}</div>
<div>Column no 3: ${row['MyThirdColumn']}</div>

Использование параметров для фильтрации данных и возвращения определенных столбцов

Вот несколько примеров использования метода GetAndDeletRow с параметрами для осуществления различных запросов к таблицам данных.

Пример 1 - простейший вызов:

метод возвращает и удаляет первую запись из таблицы. Возвращаются все столбцы:

GetAndDeleteRow('MyCouponsTable')

Пример 2 - возвращение определенных столбцов:

метод возвращает и удаляет первую запись из таблицы. Возвращаются только заданные столбцы:

GetAndDeleteRow('MyCouponsTable', new [] {'Coupon', 'ExpirationDate'})

Пример 3 - фильтрация записей:

метод возвращает и удаляет первую отвечающую заданным критериям запись из таблицы. Возвращаются все столбцы:

GetAndDeleteRow('MyCouponsTable', null, new [] {new Filter('PromoName', EQ, 'XMas Promo')})