Cursor
Zusammenfassung
Ein Cursor ist ein Datenzugriffsobjekt, mit dem entweder die Zeilen in einer Tabelle durchlaufen oder neue Zeilen in eine Tabelle eingefügt werden können. Cursor können in drei Formen auftreten: als Such-, Einfüge- oder Aktualisierungs-Cursor. Üblicherweise werden Cursor verwendet, um Attribute zu lesen und zu aktualisieren.
Methodenübersicht
Methode | Erläuterung |
deleteRow (row) |
Deletes a row in the database. The row corresponding to the current position of the cursor will be deleted. |
insertRow (row) |
Inserts a new row into the database. |
newRow () |
Creates an empty row object. |
next () |
Returns the next object at the current index. |
reset () |
Sets the current enumeration index (used by the next method) back to the first element. |
updateRow (row) |
The updateRow method can be used to update the row at the current position of an update cursor. |
Methoden
Parameter | Erläuterung | Datentyp |
row |
The row to be deleted. | Row |
Parameter | Erläuterung | Datentyp |
row |
The row to be inserted. | Row |
Datentyp | Erläuterung |
Row |
A new empty row object. |
Datentyp | Erläuterung |
Object |
The next object at the current index. |
Parameter | Erläuterung | Datentyp |
row |
The row used to update the current position of the cursor. | Row |
Codebeispiel
Mit dem Such-Cursor werden Feldwerte in einer Zeile angezeigt.
import arcpy from arcpy import env # Set the workspace # env.workspace = "D:/St_Johns/data.gdb" # Create the search cursor # cur = arcpy.SearchCursor("roads", '"TYPE" <> 4') # Iterate through the rows in the cursor # for row in cur: print "Name: %s, CFCC code: %s" % (row.NAME, row.CFCC) del cur, row
Mit einem Aktualisierungs-Cursor werden Feldwerte in Zeilen geändert.
import arcpy from arcpy import env # Set the workspace # env.workspace = "D:/St_Johns/data.gdb" # Create the update cursor # cur = arcpy.UpdateCursor("roads") # Update the road buffer distance field based on road type. # Road type is either 1,2,3,4 Distance is in meters. for row in cur: row.BUFFER_DIST = row.TYPE * 100 cur.updateRow(row) # Delete cursor and row objects # del cur, row
Mit einem Einfüge-Cursor werden neue Zeilen in einer Tabelle erstellt.
import arcpy import time # Create insert cursor for table # cur = arcpy.InsertCursor("D:/St_Johns/data.gdb/roads_maint") x = 1000 # Create 25 new rows. Set default values on distance and CFCC code # while x <= 1025: row = cur.newRow() row.rowid = x row.distance = 100 row.CFCC = "A10" row.LastInsp = time.ctime() cur.insertRow(row) x += 1 # Delete cursor and row objects # del cur, row