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