Skip to main content

工作空间属性

汇总

Describe 函数会返回工作空间的下述属性。

对于工作空间, Describe dataType 属性将返回值 "Workspace"

属性

属性 说明 数据类型

connectionProperties

(只读)

企业级地理数据库工作空间的连接属性因所使用的企业级数据库类型而异。 connectionProperties 是一个属性集。 可能的属性如下所示:

  • authentication_mode - 连接的凭据身份验证模式, OSADBMS

  • database - 工作空间连接到的数据库。

  • dbClient - 数据库客户端,例如 sqlserverdb2oraclepostgresql

  • historical_name - 工作空间连接的历史版本的历史标记名称。

  • historical_timestamp - 表示工作空间连接的历史版本中时间戳时刻的日期和时间。

  • is_geodatabase - 如果已启用数据库以支持地理数据库,将返回 true ;否则返回 falseis_geodatabase 值以字符串形式返回。

  • instance - 工作空间连接到的实例。

  • server - 工作空间连接到的企业服务器名称。

  • user - 连接用户。

  • version - 工作空间连接的事务版本名称。

  • branch - 工作空间连接的分支版本名称。

对于任意给定工作空间,只存在 historical_namehistorical_timestampversionbranch 值中的一个。

Object

connectionString

(只读)

与企业级数据库类型结合使用的连接字符串。 对于其他任何工作空间类型,将返回空字符串。

String

currentRelease

(只读)

对于地理数据库工作空间,指定地理数据库版本是否为最新。 此属性可用于评估地理数据库是否可以升级。

Boolean

domains

(只读)

包含地理数据库属性域名称的列表。 要使用这些属性域名称,使用 属性域工具集 中的工具。

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 位对象 ID 的对象。

Boolean

supportsDateOnly

(只读)

指定工作空间是否支持仅日期类型的字段。

Boolean

supportsTimeOnly

(只读)

指定工作空间是否支持仅时间类型的字段。

Boolean

supportsTimestampOffset

(只读)

指定工作空间是否支持时间戳偏移类型的字段。

Boolean

workspaceFactoryProgID

(只读)

此 ID 是一个字符串;与 workspaceType 相比,您可使用此字符串以更细的粒度区分工作空间类型。

以下是针对常用工作空间类型返回的 workspaceFactoryProgID 值:

  • esriDataSourcesGDB.AccessWorkspaceFactory—ID 表示个人地理数据库。

  • esriDataSourcesGDB.FileGDBWorkspaceFactory—ID 表示文件地理数据库。

  • esriDataSourcesGDB.InMemoryWorkspaceFactory—ID 表示内存中工作空间。

  • esriDataSourcesGDB.MemoryWorkspaceFactory—ID 表示内存工作空间。

  • esriDataSourcesGDB.SdeWorkspaceFactory—ID 表示企业级地理数据库。

  • esriDataSourcesGDB.SqliteWorkspaceFactory—ID 表示移动地理数据库。

  • esriDataSourcesGDB.SqlWorkspaceFactory—ID 表示 SQL Server 工作空间。

  • (empty string)—空白字符串表示其他工作空间类型。

旧版本:

在 ArcGIS Pro 3.0 之前,内存工作空间将返回 esriDataSourcesGDB.ColumnaDBWorkspaceFactory 的值。

提示:

在 32 位产品中, workspaceFactoryProgID 返回的字符串后面跟着 .1 。 如果要将编写的代码用于 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—工作空间类型为基于文件的工作空间(shapefile、coverage 等)或内存中工作空间。

  • 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}")