Difference between AddFieldDelimiters and ValidateFieldName

3815
1
12-07-2010 12:39 AM
JianLiu2
New Contributor II
For the script as below, can I directly use fieldname, rather than newName in SQL? (so delete newName = arcpy.AddFieldDelimiters("C:/Data", fieldName) ...)

If not, why? When to use AddFieldDelimiters? Any difference to ValidateFieldName? Thanks indeed!!

import arcpy
from arcpy import env

fieldName = arcpy.GetParameterAsText(0)
wkspace = arcpy.GetParameterAsText(1)
in_features = arcpy.GetParameterAsText(2)
out_feat_class = arcpy.GetParameterAsText(3)
stateVal = arcpy.GetParameterAstext(4)

# AddFieldDelimieters will return a field name will the proper
# field delimiters for the workspace specified.
#
newName = arcpy.AddFieldDelimiters("C:/Data", fieldName)

# Use delimited field for Select tool SQL expression
#
sqlExp = newName + " = " + stateVal
env.workspace = wkspace
arcpy.Select_analysis(in_features, out_feat_class, sqlExp)
Tags (2)
0 Kudos
1 Reply
StephenBarrow
New Contributor
For the script as below, can I directly use fieldname, rather than newName in SQL? (so delete newName = arcpy.AddFieldDelimiters("C:/Data", fieldName) ...) 

If not, why? When to use AddFieldDelimiters? Any difference to ValidateFieldName? Thanks indeed!! 

import arcpy 
from arcpy import env 

fieldName = arcpy.GetParameterAsText(0) 
wkspace = arcpy.GetParameterAsText(1) 
in_features = arcpy.GetParameterAsText(2) 
out_feat_class = arcpy.GetParameterAsText(3) 
stateVal = arcpy.GetParameterAstext(4) 

# AddFieldDelimieters will return a field name will the proper 
# field delimiters for the workspace specified. 

newName = arcpy.AddFieldDelimiters("C:/Data", fieldName) 

# Use delimited field for Select tool SQL expression 

sqlExp =  newName + " = " + stateVal 
env.workspace = wkspace 
arcpy.Select_analysis(in_features, out_feat_class, sqlExp)


The AddFieldDelimiters will add the correct surrounds for the field depending on the source location for example [field] 'field' field etc as different workspaces need different ones.

Use AddFieldDelimiters when constructing a SQL statement as these save you some work in getting it right.

ValidateFieldName removes invalid characters form a field name (usually user typed) so it will conform and not cause code to crash by replacing invalid characters with an underscore.

hth

Stephen
0 Kudos