ARCSERVICE发布用Python写的GP工具连接SDE数据库时需要设置环境变量
如果在代码中直接写连接发完服务可能访问不到
featureClass = "D:\\ sde\\ sdeoracle11g.sde\\SDE.TEST\\TEST"
fCFields = arcpy.ListFields(featureClass)
改成如下形式便可
arcpy.env.workspace = sde_connection_path
sdeConnectionPath = os.path.join(arcpy.env.packageWorkspace, “TEST”)
fCFields = arcpy.ListFields(sdeConnectionPath)
另SDE连接文件也最好用代码创建
def setWorkspace(dataType, dataSource):
if not arcpy.env.workspace or not arcpy.env.workspace.upper() == dataType.strip().upper():
if dataType and not dataType.strip().upper() == 'SDE': # 指定数据源
arcpy.env.workspace = dataSource.strip()
else:
if not os.path.exists(sde_connection_path):
arcpy.CreateDatabaseConnection_management(arcpy.env.packageWorkspace, sde_connection_filename,
'ORACLE',
sde_instance, 'DATABASE_AUTH',
sde_user, sde_password)
arcpy.env.workspace = sde_connection_path