A typical ESRI analysis work flow:
1. Copy all data local (aka: Don't do anything over a network connection).
2. Clean up the data as to avoid anything that might make ESRI software throw a rod (getting rid of nulls in your case!)
3. Do the analysis
As for the nulls, if I was able to select them programatically then I wouldn't have this problem in the first place
Can't you specify this as part of the query???
For example, something like:
"PARCEL_ID = PARCEL_ID AND LEGAL_NAME IS NOT NULL"
Are you using this tool as a simply query or as part of a many-to-one or many-to-many sort of thing?
Typically I use this tool only for many-to-one relates. For example, if I have many records in a table each describing the height of the trees in a particular polygon over time, where:
POLYGON_ID,DECADE,TREE_HEIGHT
1,1,10
1,2,15
1,3,30
1,4,60
1,5,100
1,6,110
1,7,115
1,8,120
and I want to return a polygon for each match record in the table.
searchRows = arcpy.SearchCursor(myTableView) for searchRow in searchRows: if searchRow.getValue(myFieldName) == None: print "Null Value!" del searchRow, searchRows
searchRows = arcpy.SearchCursor(myTableView) for searchRow in searchRows: if searchRow.isNull(myFieldName): print "Null Value!" del searchRow, searchRows
So the None type is a Python thing, and how Null values are interpreted in a cursor statement. For example:searchRows = arcpy.SearchCursor(myTableView) for searchRow in searchRows: if searchRow.getValue(myFieldName) == None: print "Null Value!" del searchRow, searchRows
Not sure what the added utility is exacltly, but there is also a new .isNull cursor method in v10.0searchRows = arcpy.SearchCursor(myTableView) for searchRow in searchRows: if searchRow.isNull(myFieldName): print "Null Value!" del searchRow, searchRows
So is your error occuring in the MakeQueryTable part or the cursor part? More specifically, what line # is your code bombing on?
print "legal:" + legal
nameDict = {} errorDict = [] i = 0 searchRows = arcpy.SearchCursor("testtab") for searchRow in searchRows: i = i + 1 tlegal = row.WHSE_TANTALIS_TA_INTERESTED_PARTIES_LEGAL_NAME tfirst = row.WHSE_TANTALIS_TA_INTERESTED_PARTIES_FIRST_NAME tlast = row.WHSE_TANTALIS_TA_INTERESTED_PARTIES_LAST_NAME if tlegal != None: nameDict = str(tlegal) elif tfirst != None and tlast != None: nameDict = str(tfirst) + " " + str(tlast) else: print "Error in row #" + str(i) nameDict = "FUBAR" errorDict = [tlegal, tfirst, tlast] del searchRow, searchRows print errorDict