Difference between revisions of "TempDB.Create"
1>Admin |
m (1 revision imported) |
||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 13: | Line 13: | ||
* [[Объекты]] | * [[Объекты]] | ||
* [[Временная таблица базы данных]]}} | * [[Временная таблица базы данных]]}} | ||
| − | Функция создает новый объект временной таблицы базы данных. Функция | + | Функция создает новый объект временной таблицы базы данных с заданными столбцами и их типами данных, если это необходимо. При указании второго аргумента, функция создает или открывает постоянную таблицу внешней базы данных по их именам. Если таблица уже существовала, сервер проверит последовательность и типы данных столбцов таблицы. Если какой-то их типов отличается, функция вызовет исключение, иначе будет создан объект, с помощью которого можно обращаться к этой таблице. Если столбец ранее не сущестсвовал, он будет добавлен в таблицу. Если таблицы с таким именем не было в указанной базе данных, она будет создана. Имена БД должны быть предварительно перечислены [[Установки сервера|установках сервера]] (ветка '''SimpleDBases'''). Для наименований таблиц рекомендуется использовать латиницу или цифры, запрещено использовать знаки "." или ",". Таблица может содержать большее количество столбцов, тем указано в функции, если таблица содержит меньшее количество, недостающие столбцы будут созданы. Функция вызывается из интерфейса временной таблицы. |
== Синтаксис == | == Синтаксис == | ||
<code> | <code> | ||
| − | {{Grey|TempDB.}}'''Create'''({{Optional|<Наименования столбцов с типами данных (STRING)>}}):''<Новый объект (TEMPDB)>'' | + | {{Grey|TempDB.}}'''Create'''({{Optional|<Наименования столбцов с типами данных (STRING)>,<Имя внешней БД и наименование ее таблицы (STRING)>}}):''<Новый объект (TEMPDB)>'' |
</code> | </code> | ||
==== Аргументы ==== | ==== Аргументы ==== | ||
| − | * <code>''<Наименования столбцов с типами данных (STRING)>''</code> - Задает наименования столбцов в создаваемой таблице через запятую, формат задания столбца: <code><Наименование столбца>:<Тип данных столбца>[:<Дополнительные флаги столбца>]</code>. | + | * <code>''<Наименования столбцов с типами данных (STRING)>''</code> - {{Optional}} Задает наименования столбцов в создаваемой таблице через запятую, формат задания столбца: <code><Наименование столбца>:<Тип данных столбца>[:<Дополнительные флаги столбца>]</code>. |
** Наименование столбца подчиняется стандартным правилам создания наименований в системе и может содержать международные символы. | ** Наименование столбца подчиняется стандартным правилам создания наименований в системе и может содержать международные символы. | ||
** [[Нотация типов данных|Тип данных]] задается либо в виде прямого указания на тип данных <code><Тип>[.<Размер>[.<Точность>]]</code>, возможно указание на следующие типы: | ** [[Нотация типов данных|Тип данных]] задается либо в виде прямого указания на тип данных <code><Тип>[.<Размер>[.<Точность>]]</code>, возможно указание на следующие типы: | ||
| Line 35: | Line 35: | ||
*** '''I''' -- Добавить индекс к данному столбцу после создания | *** '''I''' -- Добавить индекс к данному столбцу после создания | ||
*** '''U''' -- Текстовые данные, хранящиеся в столбце будут использовать формат UTF-16. '''Внимание''': без такого указания, по умолчанию текст будет храниться в текущей кодировке ANSI, что может явиться причиной потери международных символов. | *** '''U''' -- Текстовые данные, хранящиеся в столбце будут использовать формат UTF-16. '''Внимание''': без такого указания, по умолчанию текст будет храниться в текущей кодировке ANSI, что может явиться причиной потери международных символов. | ||
| + | * <code>''<Имя внешней БД и наименование ее таблицы (STRING)>''</code> - {{Optional}} При использовании этого аргумента будет создана, модифицирована или проверена постоянная таблица БД с указанным именем в указанной базе данных СУБД. Аргмент задается в формате <code><Имя базы данных>.<Имя временной таблицы></code>. Имена баз данных должны быть заранее заданы в [[Установки сервера|установках сервера]] (ветка '''SimpleDBases'''), имена таблиц могут быть произвольными, однако рекомендуется использовать только латиницу и цифры, запрещено использовать знаки "." или ",". Объект, созданный в этом режиме, будет функционально соответствовать обычному объекту временной таблицы БД, однако, на данный момент функция [[TempDB.Group|Group]] недоступна для таких таблиц, и функция удаления таблицы [[TempDB.DeleteTable|DeleteTable]] будет работать только для них. | ||
==== Возвращаемое значение ==== | ==== Возвращаемое значение ==== | ||
Latest revision as of 12:00, 1 April 2026
| Create (Создание объекта временной таблицы) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция создает новый объект временной таблицы базы данных с заданными столбцами и их типами данных, если это необходимо. При указании второго аргумента, функция создает или открывает постоянную таблицу внешней базы данных по их именам. Если таблица уже существовала, сервер проверит последовательность и типы данных столбцов таблицы. Если какой-то их типов отличается, функция вызовет исключение, иначе будет создан объект, с помощью которого можно обращаться к этой таблице. Если столбец ранее не сущестсвовал, он будет добавлен в таблицу. Если таблицы с таким именем не было в указанной базе данных, она будет создана. Имена БД должны быть предварительно перечислены установках сервера (ветка SimpleDBases). Для наименований таблиц рекомендуется использовать латиницу или цифры, запрещено использовать знаки "." или ",". Таблица может содержать большее количество столбцов, тем указано в функции, если таблица содержит меньшее количество, недостающие столбцы будут созданы. Функция вызывается из интерфейса временной таблицы.
Синтаксис
TempDB.Create(<Наименования столбцов с типами данных (STRING)>,<Имя внешней БД и наименование ее таблицы (STRING)>):<Новый объект (TEMPDB)>
Аргументы
<Наименования столбцов с типами данных (STRING)>- (необязательный аргумент) Задает наименования столбцов в создаваемой таблице через запятую, формат задания столбца:<Наименование столбца>:<Тип данных столбца>[:<Дополнительные флаги столбца>].- Наименование столбца подчиняется стандартным правилам создания наименований в системе и может содержать международные символы.
- Тип данных задается либо в виде прямого указания на тип данных
<Тип>[.<Размер>[.<Точность>]], возможно указание на следующие типы:- NUMBER, NUM -- задает вещественное число с указанием на точность его представления. Тип записывается в виде
NUMBER.<Общее количество цифр>.<Количество цифр после точки>. - INTEGER, INT -- задает целое 64-битное число.
- REAL -- задает произвольное вещественное число (в инженерной нотации)
- DATE -- задает тип данных даты и времени.
- STRING, STR -- задает строковой тип данных с указанием длины строки в виде
STRING.<Длина строки в символах>. Для строк произвольной длины, необходимо указать ноль (возможности при работе с такими строками имеют определенные ограничения для SQL серверов). - ANY, DB -- задает произвольный тип базы данных.
- <Тип данных БД>[.<Вид данных БД>] -- задает определенный тип данных базы данных. В типе данных БД можно указать REF, DOC, JOUR, STOR или ENUM.
- NUMBER, NUM -- задает вещественное число с указанием на точность его представления. Тип записывается в виде
- Также тип данных можно задать с помощью указания на существующий реквизит объекта базы данных, иногда такой способ является более универсальным. В это случае формат записи выглядит следующим образом:
-><Тип данных БД>.<Вид данных БД>.<Реквизит объекта БД>. Система автоматически использует тип данных указанного реквизита для создания столбца временной таблицы. - Флаги столбца представляют совокупность букв-указаний. В данный момент можно использовать следующие указания:
- I -- Добавить индекс к данному столбцу после создания
- U -- Текстовые данные, хранящиеся в столбце будут использовать формат UTF-16. Внимание: без такого указания, по умолчанию текст будет храниться в текущей кодировке ANSI, что может явиться причиной потери международных символов.
<Имя внешней БД и наименование ее таблицы (STRING)>- (необязательный аргумент) При использовании этого аргумента будет создана, модифицирована или проверена постоянная таблица БД с указанным именем в указанной базе данных СУБД. Аргмент задается в формате<Имя базы данных>.<Имя временной таблицы>. Имена баз данных должны быть заранее заданы в установках сервера (ветка SimpleDBases), имена таблиц могут быть произвольными, однако рекомендуется использовать только латиницу и цифры, запрещено использовать знаки "." или ",". Объект, созданный в этом режиме, будет функционально соответствовать обычному объекту временной таблицы БД, однако, на данный момент функция Group недоступна для таких таблиц, и функция удаления таблицы DeleteTable будет работать только для них.
Возвращаемое значение
Возвращает новый объект временной таблицы базы данных.
Примеры
//Пример создает таблицу аТемп, и заполняет ее резервами документа ЗаказНаПроизводство, при этом в ней также заполнено поле документа ВыпускПродукции.
// Документ ВыпускПродукции подчинен документу ЗаказНаПроизводство. Выборка документов происходит за период с НачДата по КонДата.
//Таблица номенклатуры из резервов с выпусками и заданиями
аТемп:=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->зДок");
//В дальнейшем таблицу аТемп можно выводить на экран или использовать в последующих запросах.