Logs.Query

From SunFlurry wiki
Jump to: navigation, search
  Query (Запрос к журналу регистрации событий БД)
Объект:Объект базы данных
Статус разработки: Частичная реализация
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в дату, число, ошибка в фильтрах
Визуальность:Нет

Функция выполняет запрос по таблице логов базы данных в указанном диапазоне дат с указанными фильтрами и получает результат в виде таблицы значений. Каждая запись в журнале датирована датой, когда она была создана, поэтому, запрос можно выполнять по диапазону дат. Для превращения таблицы, возвращаемой этой функцией в таблицу запроса (Объект запрос базы данных), можно использовать функцию CreateFromTable. После чего процессор запроса создаст группировки и добавит папки справочников, если это необходимо.

Синтаксис

Logs.Query(<Начальная дата запроса (DATE)>,<Конечная дата запроса (DATE)>,<Количество получаемых записей (INT)>=0,<Стандартные фильтры>...):<Результат запроса (TAB)>

Аргументы

  • <Начальная дата запроса (DATE)> - (необязательный аргумент) Задает начальную дату запроса, если аргумент опущен, запрос будет выбирать записи, начиная с самой первой.
  • <Конечная дата запроса (DATE)> - (необязательный аргумент) Задает конечную дату запроса, если аргумент опущен, запрос будет выбирать записи, заканчивая самой последней.
  • <Количество получаемых записей (INT)> - (необязательный аргумент) Задает количество записей, которые будет возвращены в запросе с учетом фильтров запроса. Если количество записей, входящих в фильтр, будет больше, чем это значение, лишние записи будут игнорированы, если это значение равно нулю (по умолчанию), ограничение на количество записей не накладывается.
  • <Стандартные фильтры> - (необязательный аргумент) Стандартные фильтры запроса описаны в статье Стандартные фильтры. Однако, в данный момент поддерживается только простой формат стандартных фильтров. (планируется к реализации)

Возвращаемое значение

Возвращается таблица с отобранными записями из журнала регистрации событий БД. Таблица имеет следующие столбцы:

  • @DATE -- задает дату и время записи
  • @ELEMENT -- задает внутренний код БД для записи журнала регистрации (по этому коду можно сортировать, производить поиск конкретной записи журнала, либо использовать его для создания граничного условия журнала при его переборе, так как поле @DATE для разных записей может совпадать).
  • @LINK -- задает объект БД, на который ссылается запись (см. описание Write). Не все записи имеют заполненный объект.
  • @USERNAME -- задает имя пользователя, который создал данную запись.
  • @EVENTTYPE -- задает тип события (0..255), который был задан событию при его создании (см. описание Write).
  • @EVENTNAME -- задает наименование события, которое было задано событию при его создании (см. описание Write).
  • @COMMENT -- задает описание события. Часто описание является строкой неограниченной длины и некоторые серверы базы данных не могут включать такие типы данных в запрос, поэтому, для таких серверов, при использовании описания в фильтрах, оно будет усечено до определенного количества знаков (к примеру, 256). Однако, в результирующую таблицу попадает полное описание.

Примеры

//Пример получает таблицу с записями журнала регистрации для документа Д за любой период.
aTab:=Logs.Query(,,,"@LINK",Д);
aTab.Sort("@Date+,@Element+");
//После этого таблицу можно вывести на экран или поместить в электронную таблицу для того, чтобы показать ее пользователю.