ЗапросSql
Стд::БазаДанных::Sql::ЗапросSql Базовые типы: Объект Дочерние типы: ЗапросSqlБезВыборки, ЗапросSqlВызовПроцедуры, ЗапросSqlСВыборкой |
Доступность: Сервер |
Иерархия типа
graph TD;
ЗапросSql["Запрос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 = &Ид")
для Ид из Иды
Запрос.УстановитьЗначениеПараметра("Ид", Ид)
Результат += Запрос.Выполнить()
;
возврат Результат
;