TempDB.Create

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

Функция создает новый объект временной таблицы базы данных. Функция может быть вызвана с интерфейсом временной таблицы.

Синтаксис

TempDB.Create(<Наименования столбцов с типами данных (STRING)>):<Новый объект (TEMPDB)>

Аргументы

  • <Наименования столбцов с типами данных (STRING)> - Задает наименования столбцов в создаваемой таблице через запятую, формат задания столбца: <Наименование столбца>:<Тип данных столбца>[:<Дополнительные флаги столбца>].
    • Наименование столбца подчиняется стандартным правилам создания наименований в системе и может содержать международные символы.
    • Тип данных задается либо в виде прямого указания на тип данных <Тип>[:<Размер>[:<Точность>]], возможно указание на следующие типы:
      • NUMBER, NUM -- задает вещественное число с указанием на точность его представления. Тип записывается в виде NUMBER:<Общее количество цифр>:<Количество цифр после точки>.
      • INTEGER, INT -- задает целое 64-битное число.
      • REAL -- задает произвольное вещественное число (в инженерной нотации)
      • DATE -- задает тип данных даты и времени.
      • STRING, STR -- задает строковой тип данных с указанием длины строки в виде STRING:<Длина строки в символах>. Для строк произвольной длины, необходимо указать ноль (возможности при работе с такими строками имеют определенные ограничения для SQL серверов).
      • ANY, DB -- задает произвольный тип базы данных.
      • <Тип данных БД>[.<Вид данных БД>] -- задает определенный тип данных базы данных. В типе данных БД можно указать REF, DOC, JOUR, STOR или ENUM.
    • Также тип данных можно задать с помощью указания на существующий реквизит объекта базы данных, иногда такой способ является более универсальным. В это случае формат записи выглядит следующим образом: -><Тип данных БД>.<Вид данных БД>.<Реквизит объекта БД>. Система автоматически использует тип данных указанного реквизита для создания столбца временной таблицы.
    • Флаги столбца представляют совокупность букв-указаний. В данный момент можно использовать следующие указания:
      • I -- Добавить индекс к данному столбцу после создания
      • U -- Текстовые данные, хранящиеся в столбце будут использовать формат UTF-16. Внимание: без такого указания, по умолчанию текст будет храниться в текущей кодировке ANSI, что может явиться причиной потери международных символов.

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

Возвращает новый объект временной таблицы базы данных.

Примеры

//Пример создает таблицу аТемп, и заполняет ее резервами документа ЗаказНаПроизводство, при этом в ней также заполнено поле документа ВыпускПродукции. 
//  Документ ВыпускПродукции подчинен документу ЗаказНаПроизводство. Выборка документов происходит за период с НачДата по КонДата.
//Таблица номенклатуры из резервов с выпусками и заданиями
аТемп:=TempDB.Create("зДок:DB,зЗад:DB,зН:DB:I,Количество:NUMBER.15.5");
//Заказы на производство
аТемп.LoadFrom("Stor.Резервы","@LINK->зЗад,Номенклатура->зН,?(@EXPENSE=1,-Количество,Количество)->Количество",
  "(BegOfDay(@DATE)>=НачДата)And(BegOfDay(@DATE)<=КонДата)","IsType(@LINK,Doc.ЗаказНаПроизводство)");
//Заполняем зДок (подчиненный документ -- ВыпускПродукции)
вТемп:=TempDB.Create("зДок2:DB,зЗад:DB");
//Выбираются только те документы выпусков, основания которых (ЗаказНаПроизводство) находятся в таблице аТемп
вТемп.LoadFrom("Doc.ВыпускПродукции","@ELEMENT->зДок2,@ELEMENT.ДокОснование->зЗад","@ELEMENT.ДокОснование IN аТемп.зЗад");
//Заполним столбец зДок оригинальной таблицы, объединение происходит по условию ":зЗад=зЗад".
аТемп.Update(вТемп,":зЗад=зЗад,зДок2->зДок");
//В дальнейшем таблицу аТемп можно выводить на экран или использовать в последующих запросах.