Link Search Menu Expand Document

ЗапросSql

Стд::БазаДанных::Sql::ЗапросSql
Базовые типы: Объект
Дочерние типы: ЗапросSqlБезВыборки, ЗапросSqlВызовПроцедуры, ЗапросSqlСВыборкой

Иерархия типа

graph BT;
ЗапросSql-->Объект;

Запрос для внешней БД.

Сравнение ссылочное


Свойства

Текст

Текст: Строка

Текст запроса.

Важно! При использовании PostgreSQL следует экранировать символ & в операциях.

Запрос.Текст = "SELECT ARRAY[1,4,3] \\&\\& ARRAY[2,1] \"MyColumn\""

Важно! При использовании PostgreSQL не разрешено использование операций, содержащих символ ?. Следующий запрос не будет выполнен из-за ошибки.

Запрос.Текст = "SELECT ?- lseg '((-1,0),(1,0))' \"MyColumn\""

Методы

УстановитьЗначениеПараметра

УстановитьЗначениеПараметра(
  Имя: Строка,
  Значение: Объект,
  ТипДанных: ТипДанныхSql? = Неопределено)

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

Имя - Имя параметра, при пустом значении выбрасывается исключение ИсключениеНедопустимыйАргумент

Значение - Новое значение параметра.

ТипДанныхSql - Sql тип параметра. Если не указан, определяется автоматически в зависимости от параметра Значение:

* Стд::БазаДанных::Null -> NULL
* Булево -> Boolean
* Строка -> VarChar
* Число
    * Если целое, то в зависимости от значения выбирается наименьшее из BigInt, Integer, SmallInt.
    * Если не целое, то Numeric
* Дата -> Date
* ДатаВремя -> TimeStamp
* Время -> Time
* Момент -> TimeStampWithTimeZone
* Байты -> VarBinary
* ПотокЧтения -> VarBinary

При вызове метода никаких проверок не выполняется:

  • можно установить значение параметра, которого нет в тексте запроса
  • можно повторно установить значение параметра (затерев тем самым предыдущее)
  • можно указать несовместимые ТипДанныхSql и Значение
  • можно указать несоответствующий тексту запроса ТипДанныхSql

Примеры

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

метод УдалитьПеречисленные(Соединение: СоединениеSql, Иды: Обходимое<Строка>): Число
    пер Результат = 0
    пер Запрос = Соединение.СоздатьЗапросБезВыборки("DELETE FROM dbo.doc_table WHERE id = &Ид")
    для Ид из Иды
        Запрос.УстановитьЗначениеПараметра("Ид", Ид)
        Результат += Запрос.Выполнить()
    ;
    возврат Результат
;

Список унаследованных методов

Объект