folgendes Script funktionierte schon mal, und heute aus heiterem Himmer nicht mehr:
Code: Alles auswählen
def join_dbf(dbf_file,fc, fc_name):
gp.AddField_management(fc, "Datum", "DATE")
gp.MakeFeatureLayer(fc, "lyr")
gp.AddJoin_management("lyr", "AGS", dbf_file, "AGS")
expression = '[%s.DATE_C]' %(fc_name[0:2])
gp.CalculateField_management ("lyr", gp.describe(fc).name+".Datum", expression)
gp.RemoveJoin_management("lyr",os.path.splitext(os.path.basename(dbf_file))[0])
gp.delete("lyr")
RuntimeError:
An invalid SQL statement was used.
An invalid SQL statement was used. [bb]
..."bb" ist dabei das "Ergebnis" von gp.describe(fc).name
Die Funktion ist dabei folgender maßen aufgebaut:
gp.CalculateField_management (inputlayer, zu berechnende Spalte, was in die SPalte rein soll) - ganz grob formuliert
Ich hab dabei an meine Geodaten NUR ein dbf File gejoint, aus dem nun eine Spalte "übernommen" werden soll, in die Geodaten-Tabelle. Funktioniert leider nur über diese Funktion.
Seltsamer Weise, im gleichen Script, mache ich das ganze mit einem 2. dbf-File, welches immer das selbe ist und nicht variert:
Code: Alles auswählen
def join_dbf_ewz(dbf_file,bl,bl_name):
gp.AddField_management(bl, "Einwohnerzahl", "Double")
gp.MakeFeatureLayer(bl, "lyr")
gp.AddJoin_management("lyr", "AGS_neu", dbf_file, "AGS")
expression = '[EWZ.Gesamt]'
gp.CalculateField_management ("lyr", gp.describe(bl).name+".Einwohnerzahl", expression)
gp.RemoveJoin_management("lyr",os.path.splitext(os.path.basename(dbf_file))[0])
gp.delete("lyr")
Daher kann das mit dem Ivalid SQL Statement [bb] nicht hinkommen.
Was sich unterscheidet ist die expression, einmal fest, einmal variabel, da in dem variablen Fall eben jedesmal ein anderes File gejoint wird.
Hat jemand zufällig eine Lösung parat, oder weiß, woran es liegt? Bin hier schon am Verzweifeln