Skip to main content

Свойства рабочей области

Краткая информация

Функция Describe возвращает описанные ниже свойства для рабочей области.

Для рабочей области свойство Describe dataType возвращает значение "Workspace".

Свойства

Свойство Объяснение Тип данных

connectionProperties

(Только для чтения)

Свойства подключения для рабочей области многопользовательской базы геоданных зависят от используемого типа многопользовательской базы данных. connectionProperties - это набор свойств. Доступны следующие свойства:

  • authentication_mode — режим аутентификации учетных данных подключения: может быть OSA или DBMS.

  • database — база данных, к которой подключена рабочая область.

  • dbClient - Клиент базы данных, например, sqlserver, db2, oracle или postgresql.

  • historical_name — имя метки времени исторической версии, к которой подключена рабочая область.

  • historical_timestamp — время и дата, представляющие метку времени в исторической версии, к которой подключена рабочая область.

  • is_geodatabase — возвращает значение true, если в базе данных включена поддержка баз геоданных, в противном случае возвращается значение false. Значение is_geodatabase возвращается в виде строки.

  • instance — экземпляр, к которому подключена рабочая область.

  • server – имя корпоративного сервера, к которому подключена рабочая область.

  • user — подключенный пользователь.

  • version – имя транзакционной версии, к которой подключена рабочая область.

  • branch – имя сервис-ориентированной версии, к которой подключена рабочая область.

Только одно из свойств historical_name, historical_timestamp, version или branch существует в каждой рабочей области.

Object

connectionString

(Только для чтения)

Строка подключения, используемая вместе с типом многопользовательской базы данных. Для любого другого типа рабочей области возвращается пустая строка.

String

currentRelease

(Только для чтения)

Для рабочей области базы геоданных определяет, является ли версия базы геоданных текущей. Это свойство можно использовать для получения сведений о возможности обновления базы геоданных.

Boolean

domains

(Только для чтения)

Список Python с именами доменов базы геоданных. Для работы с этими именами доменов используйте инструменты из группы инструментов Домены.

String

release

(Только для чтения)

Для рабочей области базы геоданных возвращается выпуск базы геоданных. В следующей таблице представлено сопоставление выпусков базы геоданных с номерами версий ArcGIS:

Выпуск базы геоданных

Версия ArcGIS

2,2,0

9.2

2,3,0

9.3, 9.3.1

3,0,0

10.0–10.8.1

ArcGIS Pro 1.0–3.6

2,2,0

supportsBigInteger

(Только для чтения)

Указывает, поддерживает ли рабочая область поля типа Большое целое.

Boolean

supportsBigObjectID

(Только для чтения)

Указывает, поддерживает ли рабочая область объекты с 64-разрядным object ID.

Boolean

supportsDateOnly

(Только для чтения)

Указывает, поддерживает ли рабочая область поля типа Только дата.

Boolean

supportsTimeOnly

(Только для чтения)

Указывает, поддерживает ли рабочая область поля типа Только время.

Boolean

supportsTimestampOffset

(Только для чтения)

Указывает, поддерживает ли рабочая область поля типа Сдвиг метки времени.

Boolean

workspaceFactoryProgID

(Только для чтения)

ID - это строка, которую можно использовать для более точной идентификации типов рабочей области, чем при использовании workspaceType.

Далее представлены значения workspaceFactoryProgID, возвращаемые для различных типов рабочей области:

  • esriDataSourcesGDB.AccessWorkspaceFactory—Идентификатор указывает на персональную базу геоданных.

  • esriDataSourcesGDB.FileGDBWorkspaceFactory—Идентификатор указывает на файловую базу геоданных.

  • esriDataSourcesGDB.InMemoryWorkspaceFactory—Идентификатор указывает на виртуальную рабочую область.

  • esriDataSourcesGDB.MemoryWorkspaceFactory—Идентификатор указывает на рабочую область в памяти.

  • esriDataSourcesGDB.SdeWorkspaceFactory—Идентификатор указывает на многопользовательскую базу геоданных.

  • esriDataSourcesGDB.SqliteWorkspaceFactory—Идентификатор указывает на мобильную базу геоданных.

  • esriDataSourcesGDB.SqlWorkspaceFactory—Идентификатор указывает на рабочую область SQL Server.

  • (empty string)—Пустая строка указывает на рабочую область другого типа.

Прежние версии:

До ArcGIS Pro 3.0 виртуальная рабочая область возвратит значение esriDataSourcesGDB.ColumnaDBWorkspaceFactory.

Подсказка:

В 32-битных продуктах .1 идет после строки, возвращаемой workspaceFactoryProgID. Если вы пишите код, который будет использоваться в продуктах 32-бит и 64-бит, используйте метод объекта строки startswith.

describe = arcpy.Describe(data)
# Not - if describe.workspaceFactoryProgID == 'esriDataSourcesGDB.FileGDBWorkspaceFactory.1'
if describe.workspaceFactoryProgID.startswith('esriDataSourcesGDB.FileGDBWorkspaceFactory'):
    pass  # Take some action

String

workspaceType

(Только для чтения)

Определяет тип рабочей области.

  • FileSystem—Тип рабочей области — рабочая область, основанная на файлах (шейп-файл, покрытие и т.д.) или виртуальная рабочая область.

  • LocalDatabase—Тип рабочей области - локальная база геоданных (файловая или персональная) или виртуальная рабочая область.

  • RemoteDatabase—Тип рабочей области - база геоданных, для которой требуется удаленное подключение (многопользовательская, OLE DB и т.д.)

String

Пример кода

Пример Свойства рабочей области

Следующий автономный скрипт демонстрирует свойства рабочей области для многопользовательской базы данных:

import arcpy

# Create a Describe object for an enterprise database
desc = arcpy.Describe(r"c:\data\Connection to state.sde")

print(f"Connection string:       {desc.connectionString}")
print(f"WorkspaceFactoryProgID:  {desc.workspaceFactoryProgID}")
print(f"Workspace type:          {desc.workspaceType}")

# Print connection properties
cp = desc.connectionProperties
print("\nDatabase Connection Properties:")
print(f"  Server:          {cp.server}")
print(f"  Instance:        {cp.instance}")
print(f"  Database:        {cp.database}")
print(f"  Database client: {cp.dbClient}")
print(f"  User:            {cp.user}")
print(f"  Version:         {cp.version}")

# Print workspace domain names
domains = desc.domains
print("\nDomains:")
for domain in domains:
    print(f"  {domain}")