Template:Общие функции, связанные с БД

From SunFlurry wiki
Jump to: navigation, search
Идентификатор Статус Тип Визуальная Параметры Описание
DBCodeLength Реализована Функция DBCodeLength():<Длина строки внутреннего кода объекта БД (INT)> Функция возвращает число 20, являющееся длиной строки внутреннего кода объекта базы данных.
DBTypeStr Реализована Функция DBTypeStr(<Аргумент>):<Тип объекта базы данных (STRING)> Функция возвращает тип объекта базы данных в виде строки. Пример возвращаемых значений: DOC, REF, ENUM и т.п. В случае, если аргумент не является объектом базы данных, будет возвращена пустая строка.
DBObjectName Реализована Функция DBObjectName(<Аргумент>):<Вид объекта базы данных (STRING)> Функция возвращает вид объекта базы данных в виде строки. Пример для элемента справочника REF.Справочник1 будет возвращена строка Справочник1. Результат функции соответствует конструкции <Переменная>.DBName(). В случае, если аргумент не является объектом базы данных или вид объекта не выбран, будет возвращена пустая строка.
IsDBObject Реализована Функция IsDBObject(<Аргумент>):<Является ли аргумент объектом БД (INT)> Функция возвращает 1, если аргумент является объектом базы данных, иначе будет возвращен 0.
MassLockWithWait Реализована Функция MassLockWithWait(<Список с объектами для блокировки (LIST)>,<Режим пропуска (INT)>=0,<Разблокировка при ошибках (INT)>=1,<Период ожидания млс. (INT)>=0,<Объект ошибки>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция позволяет установить блокировку на множестве объектов базы данных (или/и семафорах), блокировка происходит по указанным правилам (см. полное описание)
MassUnlock Реализована Функция MassUnlock(<Список с объектами для разблокировки (LIST)>,<Объект ошибки>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция позволяет снять блокировку со множества объектов базы данных (или/и семафоров) по указанным правилам (см. полное описание)
DBLockStringMutex Реализована Функция DBLockStringMutex(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)> Функция осуществляет блокировку именованного серверного семафора, либо возвращает данные пользователя, который его заблокировал.
DBIsStringMutexLocked Реализована Функция DBIsStringMutexLocked(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)> Функция проверяет, заблокирован ли именованный серверный семафор, и возвращает данные пользователя, который его заблокировал при необходимости.
DBUnlockStringMutex Реализована Функция DBUnlockStringMutex(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)> Функция осуществляет разблокировку именованного серверного семафора, либо возвращает данные пользователя, который его заблокировал.
StoreValue Реализована Функция StoreValue(<Имя переменной (STRING)>,<Значение переменной>) Функция сохраняет на сервере для текущего пользователя произвольное значение под выбранным именем. Функция работает только если клиент имеет подключение к серверу.
RestoreValue Реализована Функция RestoreValue(<Имя переменной (STRING)>):<Значение переменной> Функция получает, сохраненное ранее на сервере для текущего пользователя произвольное значение с выбранным именем. Функция работает только если клиент имеет подключение к серверу. Если значение с указанным именем не было сохранено, будет возвращено пустое значение.
StoreGlobalTempString Реализована Функция StoreGlobalTempString(<Имя переменной (STRING)>,<Значение переменной (STRING)>) Функция изменяет значение временной именной переменной на сервере, которая будет доступна другим пользователям, однако, будет потеряна при перезагрузке сервера.
RestoreGlobalTempString Реализована Функция RestoreGlobalTempString(<Имя переменной (STRING)>):<Значение переменной (STRING)> Функция получает значение временной именной переменной на сервере. Подобные переменные доступны другим пользователям, однако, теряются при перезагрузке сервера.
BroadcastDBUpdate Реализована Функция BroadcastDBUpdate(<Тип базы данных (STRING)>,<Для всех пользователей (INT)>=0):<Сообщение успешно отправлено (INT)> Функция рассылает запросы на обновление форм, содержащих таблицы базы данных указанного типа в текущей системе или глобально по всем клиентам сервера. В последнем случае, нужно быть осторожным, чтобы не перегружать сервер внезапным большим количеством запросов, даже с учетом того, что серверная часть использует особую систему замедления отправки запросов клиентам.
DBObjectFromDBCode Реализована Функция DBObjectFromDBCode(<Внутренний код базы данных (STRING)>):<Объект базы данных (DB)> Функция создает объект базы данных по его внутреннему коду. Нужно понимать, что внутренний код является уникальным в пределах текущей базы данных, при перенесении информации в другую базу данных, внутренние коды объектов будут совсем другими.
MassLoadObjects Реализована Функция MassLoadObjects(<Объект для загрузки>,<Аргумент 1>,<Аргумент 2>,<Также загружать периодические реквизиты (INT)>=0,<Производить загрузку заголовков (INT)>=0,<Доп. реквизиты при загрузке заголовков (STRING)>=""):<Количество объектов, которые были загружены (INT)> Функция производит загрузку большого количества объектов из списка, таблицы или являющихся реквизитами объекта БД, одновременно, что быстрее, чем загрузка этих объектов один за другим. Дополнительные параметры позволяют настроить загрузку, в т.ч. ограничить ее загрузкой только заголовков.
LockDBPath Планируется Функция LockDBPath(<Путь или объект для блокировки (STRING,DB)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)> Функция производит попытку блокировки всей таблицы указанных объектов (к примеру, всего справочника с указанным видом).
UnlockDBPath Планируется Функция UnlockDBPath(<Путь или объект для разблокировки (STRING,DB)>,<Описание ошибки (STRING)>):<0 или 1 (INT)> Функция производит разблокировки всей таблицы указанных объектов (к примеру, всего справочника с указанным видом), заблокированных ранее функцией LockDBPath
GetServerLocksInformation Реализована Функция GetServerLocksInformation(<Перекрестная проверка (INT)>=0):<Таблица блокировок сервера (TAB)> Функция получает полный список блокированных в данный момент объектов на сервере (включая именованные семафоры).
GetServerStoragesInformation Реализована Функция GetServerStoragesInformation(<Имена накопителей через запятую (STRING)>=""):<Информация по накопителям (TAB)> Функция получает информацию по всем накопителям проекта с сервера в виде таблицы. В ней присутствует информация по крайним документам, дате остатков и пр.
GetServerUsedSpaceInformation Реализована Функция GetServerUsedSpaceInformation():<Информация по объему таблиц БД (TAB)> Функция получает информацию по затраченному месту в базе данных по всем объектам проекта и системным таблицам с сервера в виде таблицы. В таблице также присутствует информация строчным частям и таблицам периодических значений.
CheckDBConsistency Планируется Функция CheckDBConsistency(<Путь или объект (STRING,DB)>="",<Режим (INT)>=0):<Информация по проблемам БД (TAB)> Функция осуществляет проверку корректности информации на сервере для всех таблиц или таблиц с заданным путем. Информация возвращается в виде таблицы.
BeginTransaction Реализована Функция BeginTransaction():<Уровень вложения транзакции (INT)> Функция инициирует начало транзактного изменения объектов БД. По умолчанию транзакция на сервере не включена и возникает периодически при записи объектов или обработке документов. Каждый поток имеет свой уровень вложения транзакции. Функция опасна и при некорректном использовании может привести к порче данных. См. полное описание.
CommitTransaction Реализована Функция CommitTransaction():<Уровень вложения транзакции (INT)> Функция уменьшает текущий уровень транзакции на единицу и, если он равен нулю, фиксирует изменения в базе данных. См. также BeginTransaction.
RollbackTransaction Реализована Функция RollbackTransaction() Функция отменяет все изменения, произведенные в текущей транзакции и уменьшает уровень транзакции до нуля. См. также BeginTransaction.
IsTransactionActive Реализована Функция IsTransactionActive():<0 или 1 (INT)> Функция возвращает 1 в случае, если в данном потоке уровень транзакции больше нуля (транзакция активна).
CollectObjectsLinks Реализована Функция CollectObjectsLinks(<Список объектов (LIST)>):<Таблица ссылок данных объектов (TAB)> Функция возвращает полную таблицу ссылок всех объектов БД из заданного списка. К примеру, если объект содержится в движениях накопителя или выбран в реквизите другого объекта (в т.ч. периодическом), в таблицу добавится запись о такой ссылке. Функция может использоваться перед физическим удалением объектов из БД, чтобы убедиться, что никакие другие таблицы БД не имеют на них ссылок. Функция может сильно загрузить сервер базы данных.
LockStorage Реализована Функция LockStorage(<Наименование накопителя (STRING)>) Функция производит блокировку указанного накопителя для всех пользователей сервера. Если накопитель был заблокирован другим пользователем, функция вызовет исключение. Функция вызывается автоматически при обработке документов с включенным режимом автоматической транзакции. Время между блокировкой и разблокировкой необходимо минимизировать, чтобы улучшить производительность базы данных. При ошибке, функция не предлагает имени пользователя, заблокировавшего накопитель, если такая информация необходима, разработчик может использовать функцию LockDBPath вместо текущей. Обычно функция используется вне модуля обработки документа. В отличие от функции UnlockStorage, функция может использоваться как внутри транзакции, так и вне оной.
UnlockStorage Реализована Функция UnlockStorage(<Наименование накопителя (STRING)>) Функция производит разблокировку указанного накопителя, при его блокировке функцией LockStorage. Функция может использоваться только вне режима транзакции, так как при окончании транзакции, все заблокированные накопители автоматически будут разблокированы системой.
InitiateBackupCreation Реализована Функция InitiateBackupCreation(<Идентификатор протокола резервного копирования (STRING)>,<Ожидать завершения процесса (INT)>=0):<Внутренний код процесса резервного копирования (INT)> Функция инициирует (и ожидает завершения, если необходимо) процесс резервного копирования базы данных и сопутствующих файлов проекта по протоколу, заданному в файлах инициализации сервера. Идентификатор протокола задается из установок в файле инициализации сервера. Если ожидание окончания процесса не задано, функция возвращается сразу же после инициации процесса резервного копирования, иначе только после окончания процесса или возникновения ошибки. Для получения информации по асинхронному процессу, а также для получения описания ошибки, остановившей процесс, используется функция QueryBackupProgress.
QueryBackupProgress Реализована Функция QueryBackupProgress(<Код процесса резервного копирования (INT)>,<Текущее сообщение процесса копирования или сообщение об ошибке (STRING)>,<Дата и время начала последнего процесса (DATE)>):<Код состояния процесса резервного копирования (INT)> Функция используется для получения информации об окончании или состоянии процесса резервного копирования, инициированого функцией InitiateBackupCreation.
QueryScheduledBackupFailure Реализована Функция QueryScheduledBackupFailure(<Идентификатор протокола последней ошибки резервного копирования (STRING)>,<Сообщение об ошибке, произошедшей во время резервного копирования (STRING)>,<Дата и время начала последнего процесса (DATE)>):<Ошибка происходила (1), ошибки не было (0) (INT)> Функция возвращает информацию по последней ошибке при резервном копировании, выполнявшемся по расписанию. Если ошибка произошла при инициации копирования функцией InitiateBackupCreation, она не будет возвращена этой функцией. Функция может выполняться при запуске клиента с административными правами, чтобы предупредить администратора о том, что какой-либо из процессов резервного копирования закончился с ошибкой. Чтобы очистить информацию об ошибке, необходимо удалить сохраненный файл ошибки в каталоге проекта на сервере.
SysRebuildIndexes Реализована Функция SysRebuildIndexes(<Наименование объекта, для которого необходимо выполнить процедуру перестроения индексов (STRING)>) Функция выполняет процедуру перестроения индексов для указанного объекта базы данных или для всех объектов базы данных. Данная процедура может занять продолжительное время. Необходимость в такой процедуре может появляться при обновлении сервера базы данных или порче данных в базе данных и т.д. Для некоторых типов СУБД нет возможности выполнить такую процедуру с помощью сторонних утилит, к примеру, для SQLite3 использование особых типов сравнения для текстовых данных, делает невозможным использование сторонних утилит, альтернативой перестроения индексов может служить выгрузка дампа базы данных и создание с помощью него новой базы данных.