The problem is here function2 generates wrong results or works wrong.
works wrong means if a loop is defined to 5 iterations it will runs more then 5 times. like 20, 30 times and generates different results of one value.
When i run each function separately it will works fine. but when i run function in one script it will create problems.
My findings of this are LOCKS which are creating the problem.
Sample Structure of my script:
import arcpy import math import sys import traceback from arcpy import env # Class to Generate Report class test: def __init__(self, workSpace): self.workSpace = workSpace # Add Fields def function1(self): # Script return; # Generate Report def function2(self): # Script rows = arcpy.SearchCursor(self.mapLayerFinal,"","","Shape_Area") row = rows.next() while row: area = row.Shape_Area print "function2" destination_cursor = arcpy.UpdateCursor(self.censusLayer, '"DISTRICT_ID" = '+ str(district_id)) row1 = destination_cursor.next() while row1: row1.setValue("District_Area",area) destination_cursor.updateRow(row1) row1 = destination_cursor.next() row = rows.next() return; t = test(workSpace) t.function1() t2 = test(workSpace) t2.function2()
NOTE: code is tested and working correct if each function is executed separately
Solved! Go to Solution.
I'm not clear on what you're asking. You say the code is tested and working correctly, so what is it that is not working correctly? You mention your theory that schema locks are causing an issue, but that is not consistent with the iteration errors you describe. I don't really see how we can help without seeing function 2.
Why are you using a class? Your functions look fine without being buried within a class.
I can't follow your indentation particularly with respect to your returns...and
Darren is absolutely correct about arcpy.da cursors