Объект Table

Объект Table представляет постоянную/временную таблицу ГБД или таблицу внешней БД (под таблицами внешней БД понимаются не только таблицы данных, но также представления, синонимы и системные таблицы, предоставляемые источником данных ODBC). Для доступа к записям таблицы следует использовать метод Table::OpenRecordset, создающий объект Recordset - набор записей таблицы.

Временные таблицы локальны для каждого сеанса, осуществляющего совместный доступ к ГБД и существуют в ГБД только в течение сеанса. Модификации как записей временной таблицы, так и структуры временной таблицы осуществляются вне механизма транзакций ГБД.

На основе временных таблиц можно создавать выборки (объекты класса Query). Данная версия ядра ГИС не предоставляет возможности создания смешанных выборок на основе постоянных и временных таблиц ГБД. Каталогизация выборок, основанных на временных таблицах недопустима.

Временные таблицы не могут быть связаны с типами геометрий, кроме того, они не могут использоваться в качестве таблицы переадресации для косвенной связи таблицы/выборки внешней БД с типом геометрий.

Ядро ГИС не предоставляет возможность создания таблиц во внешних БД.

Для создания новой таблицы в ГБД необходимо выполнить следующую последовательность действий:

Создать объект Table с помощью метода GeoDatabase::CreateTable.

Создать поле таблицы с помощью метода Table::CreateField.

Установить свойства созданного поля.

Добавить поле в коллекцию Table::Fields с помощью метода Append.

Повторить шаги 2 - 4 для каждого поля таблицы.

Добавить таблицу в коллекцию GeoDatabase::Tables с помощью метода Append для создания постоянной таблицы или в коллекцию GeoDatabase::TemporaryTables для создания временной таблицы.

При успешном добавлении таблицы в коллекцию GeoDatabase::Tables или GeoDatabase::TemporaryTables, ей присваивается внутренний номер. Кроме того, присваиваются внутренние номера полям таблицы. Непрерывность последовательности внутренних номеров не гарантируется. Присвоенные внутренние номера для постоянных таблиц ГБД не изменяются между сеансами доступа к ГБД. Изменения внутренних номеров может произойти при реорганизации ГБД с помощью метода GDBEngine::CompactGDB с режимом gdbCompactNoKeepISN.

Для доступа к таблицам в коллекциях GeoDatabase::Tables, GeoDatabase::TemporaryTables и ExternalDatabase::Tables следует использовать метод Item. Аргументом метода может быть строка - имя таблицы или целое - внутренний номер таблицы. Особенности формирования имени таблицы внешней БД приведены в описании коллекции ExternalDatabase::Tables.

Для доступа к полям в коллекции Table::Fields следует использовать метод Item. Аргументом метода может быть строка - имя поля или целое - внутренний номер поля. Пока объект Table не добавлен в коллекцию GeoDatabase::Tables или GeoDatabase::TemporaryTables доступ к полям может быть только по имени.