Cursor

Краткая информация

Курсор – это объект доступа к данным, который может использоваться как для итерации по набору строк в таблице, так и для вставки новых строк в таблицу. Курсоры могут быть трех форм: поиска, вставки или обновления. Как правило, курсоры используются для считывания и обновления атрибутов.

Обзор метода

МетодОписание
deleteRow (row)

Удаляет строку в базе данных. Строка, соответствующая текущему положению курсора, будет удалена.

insertRow (row)

Вставляет новую строку в базу данных.

newRow ()

Создает пустой объект Row.

next ()

Возвращает следующий объект по текущему индексу.

reset ()

Устанавливает текущий индекс перечисления (по методу next) обратно на первый элемент.

updateRow (row)

Метод updateRow может использоваться для обновления строки в текущем положении курсора обновления.

Методы

deleteRow (row)
ПараметрОписаниеТип данных
row

Удаляемая строка.

Row
insertRow (row)
ПараметрОписаниеТип данных
row

Вставляемая строка.

Row
newRow ()
Возвращаемое значение
Тип данныхОписание
Row

Новый пустой объект Row.

next ()
Возвращаемое значение
Тип данныхОписание
Object

Следующий объект по текущему индексу.

reset ()
updateRow (row)
ПараметрОписаниеТип данных
row

Строка используется для обновления текущего положения курсора.

Row

Пример кода

Пример курсора 1

Использование курсора поиска для просмотра значений полей в строке.

import arcpy

# Set the workspace
arcpy.env.workspace = "c:/base/data.gdb"

# Create the search cursor
cursor = arcpy.SearchCursor("roads", '"TYPE" <> 4')

# Iterate through the rows in the cursor
for row in cursor:
    print("Name: {0},  CFCC code: {1}".format(row.NAME, row.CFCC))

del cursor, row
Пример курсора 2

Использование курсора обновления для изменения значений полей в строке.

import arcpy

# Set the workspace
arcpy.env.workspace = "c:/base/data.gdb"

# Create the update cursor
cursor = 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 cursor:
    row.setValue("BUFFER_DIST", row.getValue("TYPE") * 100)
    cursor.updateRow(row)

# Delete cursor and row objects
del cursor, row
Пример курсора 3

Использование курсора вставки для создания новых строк в таблице.

import datetime
import arcpy

# Create insert cursor for table
cursor = arcpy.InsertCursor("c:/base/data.gdb/roads_maint")

# Create 25 new rows. Set default values on distance and CFCC code
for i in range(1000, 1025):
    row = cursor.newRow()
    row.setValue('rowid', i)
    row.setValue('distance', 100)
    row.setValue('CFCC', 'A10')
    row.setValue('LastInsp', datetime.datetime.now())
    cursor.insertRow(row)

# Delete cursor and row objects
del cursor, row

Связанные разделы