Стд::БазаДанных
Типы для работы с базой данных Пространство содержит типы для работы с базой данных — выполнения запросов и работы с транзакциями.
Типы
Null
Тип-одиночка Стд::БазаДанных::Null Базовые типы: Объект |
Доступность: КлиентИСервер |
Значение Null базы данных.
В отличие от языка запросов, во встроенном языке нет троичной логики для Null. Т.е. сравнение Null == Null
во встроенном языке имеет результат Истина
.
Запрос
Стд::БазаДанных::Запрос Базовые типы: Объект Дочерние типы: ЗапросБезВыборки, ПроизвольныйЗапрос, ТипизированныйЗапрос |
Доступность: Сервер |
Базовый тип объектов для выполнения запросов к базе данных сформулированных на языке запросов.
ЗапросБезВыборки
Доступность: Сервер |
Объект для выполнения запросов к базе данных сформулированных на языке запросов. Объекты этого типа порождаются на основе литералов запросов не возвращающих выборку.
ИсключениеДействиеЗапрещеноВТранзакции
Стд::БазаДанных::ИсключениеДействиеЗапрещеноВТранзакции Базовые типы: Исключение, Объект |
Доступность: Сервер |
Исключение, возникающее при попытке выполнить действие, запрещенное в транзакции.
ИсключениеЗапроса
Стд::БазаДанных::ИсключениеЗапроса Базовые типы: Исключение, Объект |
Доступность: Сервер |
При выполнении запросов из встроенного языка перехватывать можно только восстановимые исключения - все восстановимые исключения языка запросов во встроенном языке представлены как ИсключениеЗапроса.
К восстановимым исключениям относятся:
- Синтаксическая ошибка в языке запросов
- Например:
Выброть 1}
(ошибка в написании ключевого слова)
- Например:
- Ошибка проверки языка запросов
- Например:
Выбрать Поле
(Не найдено поле Поле)
- Например:
- Ошибка при проверке прав доступа
- Ошибка в формате имени
- Например:
[Имя
(Неправильное экранирование)
- Например:
- Слишком маленькое или слишком большое значение типа ДатаВремя
- Ошибки при работе с временными таблицами (дублирующееся имя временной таблицы, временная таблица на найдена и т.п.)
- Ошибка блокировки
- Превышено время ожидания блокировки
- Взаимоблокировка (deadlock)
- Нарушение уникальности первичного ключа или уникального индекса
- Ошибка работы с данными
ИсключениеНедопустимоеСостояниеТранзакции
Стд::БазаДанных::ИсключениеНедопустимоеСостояниеТранзакции Базовые типы: Исключение, Объект Дочерние типы: ИсключениеНетАктивнойТранзакции |
Доступность: Сервер |
Исключение недопустимое состояние транзакции.
Если транзакция находится в состоянии, при котором можно только отменить изменения транзакции (например, одна из вложенных транзакций была отменена), то при попытке фиксации изменений такой транзакции будет вызвано исключение ИсключениеНедопустимоеСостояниеТранзакции.
ИсключениеНетАктивнойТранзакции
Стд::БазаДанных::ИсключениеНетАктивнойТранзакции Базовые типы: Исключение, ИсключениеНедопустимоеСостояниеТранзакции, Объект |
Доступность: Сервер |
Исключение выбрасывается при отсутствии активной транзакция, необходимой для выполнения операции.
ОбластьВидимостиВременныхТаблиц
Стд::БазаДанных::ОбластьВидимостиВременныхТаблиц Базовые типы: Закрываемое, Контекст, Объект |
Доступность: Сервер |
Контекст для управления областями видимости временных таблиц языка запросов.
При выполнении запроса используется текущая (самая близкая к запросу) область видимости временных таблиц. Если области нет - с временными таблицами работать нельзя, если только это не пакетный запрос. Временная таблица созданная в одной области видимости не видна в другой области видимости.
ОписаниеИсточникаДанных
Стд::БазаДанных::ОписаниеИсточникаДанных<ТипДанных> Базовые типы: Объект |
Доступность: Сервер |
В объекте описываются имена и типы колонок источника данных языка запросов.
ОписаниеКолонки
Стд::БазаДанных::ОписаниеКолонки Базовые типы: Объект |
Доступность: Сервер |
Описание одной колонки результата запроса языка запросов.
ПроизвольныйЗапрос
Доступность: Сервер |
Объект для выполнения запросов к базе данных сформулированных на языке запросов.
РезультатЗапроса
Стд::БазаДанных::РезультатЗапроса<ТипСтрокиРезультатаЗапроса> Базовые типы: Закрываемое, Обходимое, Объект |
ТипСтрокиРезультатаЗапроса: тип строки результата. |
Обход возможен только один раз. |
Доступность: Сервер |
Объект встроенного языка РезультатЗапроса предназначен для работы с результатами запроса на языке запросов.
- QueryResultRowType - тип строки результата. Обход возможен только один раз.
СтрокаРезультатаПроизвольногоЗапроса
Стд::БазаДанных::СтрокаРезультатаПроизвольногоЗапроса Базовые типы: Объект |
Доступность: Сервер |
Строка результата выполнения ПроизвольныйЗапрос.
ТипДанных
Стд::БазаДанных::ТипДанных Базовые типы: Объект |
Доступность: Сервер |
В объекте описываются допустимые типы значений.
ТипПараметраЗапроса
Стд::БазаДанных::ТипПараметраЗапроса Базовые типы: Объект |
Доступность: Сервер |
Объект встроенного языка для получения информации о типах параметра и о том представляют ли эти типы коллекцию значений. Если тип параметра составной, то значение параметра имеет один тип из этого множества. Если же параметр используется в выражении В
(например в запросе ВЫБРАТЬ Ссылка ИЗ Товары ГДЕ Поставщик В (&Поставщики)
), то значение параметра это коллекция значений типов множества.
ТипизированныйЗапрос
Доступность: Сервер |
Объект для выполнения запросов к базе данных сформулированных на языке запросов. Объекты этого типа порождаются на основе литералов запросов возвращающих выборку. Вместе с объектом запроса порождается структурный тип для результатов запроса. Имена, типы и состав полей порождённого структурного типа соответствуют колонкам результата запроса. Имя структурного типа можно задать явно с помощью специального синтаксиса языка запросов В СТРУКТУРУ (см. пример). Если имя структурного типа не задано - порождается анонимный тип. Именованные структурные типы видны за пределами модуля (в т.ч. на клиенте) по имени вида ИмяТипаВладеющегоМодулем.СобственноеИмяСтруктурногоТипа (видимость определяется видимостью типа владеющего модулем). Особенности порождённых структурных типов:
- нет конструкторов
- все поля только для чтения
- поддерживается передача между клиентом и сервером
Транзакции
Тип-одиночка Стд::БазаДанных::Транзакции Базовые типы: Объект |
Доступность: Сервер |
Используется для открытия транзакций.
Транзакция
Стд::БазаДанных::Транзакция Базовые типы: Закрываемое, Контекст, Объект |
Доступность: Сервер |
Объект встроенного языка для управления транзакцией базы данных.
Для упрощения работы с транзакциями в коде прикладного решения предполагается использование с модификатором исп
. При объявлении переменной будет выполнено открытие новой транзакции (фактической или логической), а при выходе из области видимости она будет завершаться.