Estoy tratando de usar arcpy.da.SearchCursor para revisar los registros de una clase de características almacenadas en una base de datos SQL SDE. Lo hago a través de una capa de características (creada en arcpy) llamada "unit_lyr". Cuando ejecuto el da.SearchCursor, la cláusula where es ignorada y arcpy devuelve todos los registros de la capa. Cuando lo ejecuto usando el antiguo arcpy.SearchCursor, todo funciona como se espera. ¿Alguna idea de por qué? Gracias por tu ayuda.
# Run it the old way, everything goes fine.
unit_list = []
rows = arcpy.SearchCursor('unit_lyr', 'UnitDate IS NOT NULL')
for row in rows:
if row.UnitName is not None:
if len(row.UnitName) > 1:
unit_list.append(row.UnitName)
>>> len(unit_list)
192
# Use arcpy.da and all values are returned.
unit_list = []
with arcpy.da.SearchCursor('unit_lyr', 'UnitName', 'UnitDate IS NOT NULL') as rows:
for row in rows:
if row[0] is not None:
if len(row[0]) > 1:
unit_list.append(row[0])
>>> len(unit_list)
1085
0 votos
A mí también me ha pasado esto antes de forma aleatoria. Parece que podría haber algún tipo de error. lo que es aún más extraño es incluso su
if row[0] is not None:
tampoco filtró correctamente los resultados.0 votos
¿Qué ocurre si se omite la capa y se ejecutan los cursores directamente sobre los datos?
1 votos
Creo que deberías mostrar el código exacto que estás ejecutando sin las >>> indicaciones para que podamos estar seguros de tu sangría etc y podamos copiar/pegar para probar.
0 votos
@PolyGeo: eliminadas las flechas del intérprete para poder copiar/pegar código. No es un error de sangría sin embargo; no hay error de sintaxis que surge.
0 votos
@DWynne: Funciona bien cuando ejecuto los cursores directamente sobre los datos. Esto es ciertamente inconveniente dado lo que estoy tratando de lograr, pero si la ejecución de la vieja usanza arcpy.SearchCursor es demasiado lento que podría terminar yendo directamente a los datos.
0 votos
@Mike: ¿Hubo alguna consulta sobre la definición de la capa en algún momento?
0 votos
@DWynne: Sí, yo también tenía una consulta de definición sobre la capa.