×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

5.10.1.6. SPI_execute_with_args

5.10.1.6. SPI_execute_with_args

SPI_execute_with_args — выполнить команду с внешними параметрами

Синтаксис

int SPI_execute_with_args(const char *command,
                          int nargs, Oid *argtypes,
                          Datum *values, const char *nulls,
                          bool read_only, long count)

Описание

SPI_execute_with_args выполняет команду, которая может содержать ссылки на внешние параметры. Текст команды ссылается на параметр как $n, причем вызов определяет типы данных и значения для каждого такого символа. read_only и count интерпретируются так же, как и в SPI_execute.

Основное преимущество этой функции по сравнению с SPI_execute заключается в том, что значения данных могут быть вставлены в команду без трудоемкого квотирования/экранирования, что значительно снижает риск SQL-инъекций.

Аналогичные результаты могут быть достигнуты с помощью SPI_prepare с последующим вызовом SPI_execute_plan; однако при использовании этой функции план запроса всегда оптимизируется под конкретные переданные значения параметров. Для однократного выполнения запроса следует предпочесть именно эту функцию. Если одну и ту же команду необходимо выполнить с множеством различных параметров, любой из методов может оказаться быстрее, в зависимости от соотношения затрат на повторное планирование и выгоды от использования специализированных планов.

Аргументы

const char * command

строка команды

int nargs

количество входных параметров ($1, $2и т. д.)

Oid * argtypes

массив длиной nargs, содержащий OIDтипов данных параметров

Datum * values

массив длиной nargs, содержащий фактические значения параметров

const char * nulls

массив длиной nargs, описывающий, какие из параметров имеют значение null

Если nulls имеет значение NULL то SPI_execute_with_args предполагает, что ни один из параметров не равен null. В противном случае каждый элемент массива nulls должен иметь значение ' ' , если соответствующее значение параметра не равно null, или 'n' , если соответствующее значение параметра равно null. (В последнем случае фактическое значение в соответствующем элементе values не имеет значения.) Обратите внимание, что nulls не является текстовой строкой, а представляет собой просто массив: ему не требуется '\0' символ завершения.

bool read_only

true для выполнения в режиме «только чтение»

long count

максимальное количество строк для возврата или 0 для отсутствия ограничений

Возвращаемое значение

Возвращаемое значение такое же, как и для SPI_execute.

SPI_processed и SPI_tuptable устанавливаются так же, как в SPI_execute в случае успеха.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению