GdcLBRBTreeMetadata.GetLBRBTreeDependentNames
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (→Пример использования) |
SYSDBA (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии 1 участника) | |||
| Строка 1: | Строка 1: | ||
| − | {{ | + | {{FuncDef|unit=gdcLBRBTreeMetadata|type=function|src=function GetLBRBTreeDependentNames(const ARelName: String; const ATr: TIBTRansaction; |
out Names: TLBRBTreeMetaNames): Integer;}} | out Names: TLBRBTreeMetaNames): Integer;}} | ||
| − | <onlyinclude>Функция возвращает имена объектов метаданных интервального дерева для заданной таблицы и количество зависимых от нее процедур и | + | <onlyinclude>Функция возвращает имена объектов метаданных интервального дерева для заданной таблицы и количество зависимых от нее процедур и представлений.</onlyinclude> |
===Параметры=== | ===Параметры=== | ||
| − | ;Names:Запись типа [[gdcLBRBTreeMetadata.TLBRBTreeMetaNames]] с именами объектов метаданных [[Инфраструктура интервальных деревьев|интервального дерева]]. | + | ;Names:Запись типа [[gdcLBRBTreeMetadata.TLBRBTreeMetaNames|TLBRBTreeMetaNames]] с именами объектов метаданных [[Инфраструктура интервальных деревьев|интервального дерева]]. |
;ARelName: Имя таблицы. | ;ARelName: Имя таблицы. | ||
| − | ;ATr: Открытая транзакция | + | ;ATr: Открытая транзакция. |
| − | Функция возвращает количество зависимых от указанной таблицы процедур и | + | Функция возвращает количество зависимых от указанной таблицы процедур и представлений или -1, если транзакция ATr не задана. |
| + | |||
| + | Обратите внимание, что в последней версии структуры интервального дерева используется единое для всех деревьев исключение TREE_E_INVALID_PARENT, которое является частью эталонной базы данных. Соответствующее поле структуры [[gdcLBRBTreeMetadata.TLBRBTreeMetaNames|TLBRBTreeMetaNames]] будет содержать пустую строку. | ||
===Пример использования=== | ===Пример использования=== | ||
| Строка 17: | Строка 19: | ||
Names: TLBRBTreeMetaNames; | Names: TLBRBTreeMetaNames; | ||
begin | begin | ||
| − | if GetLBRBTreeDependentNames(FieldByName('relationname').AsString, ReadTransaction, Names) > | + | // Проверяем, есть ли для нашей таблицы зависимые хранимые процедуры или представления, |
| + | // кроме стандартных частей интервального дерева. | ||
| + | if GetLBRBTreeDependentNames(FieldByName('relationname').AsString, ReadTransaction, Names) > 3 then // 3 SP | ||
raise EgdcIBError.Create('Нельзя удалить таблицу т.к. она используется в процедурах или представлениях'); | raise EgdcIBError.Create('Нельзя удалить таблицу т.к. она используется в процедурах или представлениях'); | ||
... | ... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Текущая версия на 19:40, 18 октября 2015
| Модуль: gdcLBRBTreeMetadata.pas | Тип: function |
Delphi:
function GetLBRBTreeDependentNames(const ARelName: String; const ATr: TIBTRansaction; out Names: TLBRBTreeMetaNames): Integer;
[править] Описание
Функция возвращает имена объектов метаданных интервального дерева для заданной таблицы и количество зависимых от нее процедур и представлений.
[править] Параметры
- Names
- Запись типа TLBRBTreeMetaNames с именами объектов метаданных интервального дерева.
- ARelName
- Имя таблицы.
- ATr
- Открытая транзакция.
Функция возвращает количество зависимых от указанной таблицы процедур и представлений или -1, если транзакция ATr не задана.
Обратите внимание, что в последней версии структуры интервального дерева используется единое для всех деревьев исключение TREE_E_INVALID_PARENT, которое является частью эталонной базы данных. Соответствующее поле структуры TLBRBTreeMetaNames будет содержать пустую строку.
[править] Пример использования
... procedure TgdcLBRBTreeTable.DropTable; var ... Names: TLBRBTreeMetaNames; begin // Проверяем, есть ли для нашей таблицы зависимые хранимые процедуры или представления, // кроме стандартных частей интервального дерева. if GetLBRBTreeDependentNames(FieldByName('relationname').AsString, ReadTransaction, Names) > 3 then // 3 SP raise EgdcIBError.Create('Нельзя удалить таблицу т.к. она используется в процедурах или представлениях'); ...