Saya menggunakan ArcGIS Server 10.0. Saya memiliki geoprocessing menggunakan pencarian arcpy, memperbarui dan memasukkan kursor. Saya ingin tahu lebih banyak tentang teknologi di balik kursor ini.
Apakah itu menggunakan driver atau kumpulan untuk terhubung ke database (saya menggunakan Oracle 11g)?
Apakah itu membuka koneksi ke DB sekali saat membuat kursor dan menutupnya ketika kursor dihapus? Bagaimana dengan transaksi?
Apakah kursor membuka koneksi baru dan transaksi ke DB setiap kali baris diperbarui atau dimasukkan?
sumber
del myCursor
?Anda perlu memahami konsep kursor Python.
Mereka dimodelkan setelah kursor SQL database di PEP 249: Python Database API Specification v2.0 untuk memproses hasil yang dikembalikan oleh query database.
Mayoritas antarmuka basis data Python mematuhi standar ini: cx_Oracle (Oracle), Psycopg2 (PostgreSQL / PostGIS), MySQLdb (MySQL), sqlite3 (SQLite), dll.
Kursor memungkinkan pengambilan satu atau lebih baris hasil, sampai semua baris yang cocok telah diproses dan akan mengambil seluruh hasil yang ditetapkan sekaligus, yang dapat menyebabkan masalah kecepatan pemrosesan (kinerja) ( Apakah ada yang lebih cepat daripada kursor) di ArcGIS untuk menghitung catatan? ).
Database kursor umumnya mengembalikan daftar tupel atau daftar daftar sementara metode kursor di ArcGIS mengembalikan objek enumerasi Python.
Untuk meningkatkan solusi kursor, ada beberapa pembungkus yang menyediakan antarmuka yang disederhanakan ke database SQL. Beberapa di antaranya mungkin disebut sebagai pemetaan relasional objek, atau ORM (pembuatan objek Pythonic dari baris database) dan lainnya hanya dapat membantu menghasilkan SQL, atau menyediakan dukungan pemetaan sederhana (lihat Pemrograman Basis Data Level Tinggi )
Untuk ArcPy, solusi disediakan oleh, misalnya, Sean Gillies ( Dapatkan dengannya ) dan lainnya.
Solusi geospasial lainnya (PyQGIS, rumput, osgeo.ogr, Pyshp, Rpy, Fiona, PySAL, dll.) Tidak menggunakan kursor, yang membuat segalanya lebih mudah ...
sumber
arcpy.*Cursor
adalah pemetaan Python keI*Cursor
antarmuka ArcObjects . Pemahaman tentang ArcObjects dan model geodatabase ArcGIS jauh lebih berguna daripada pengetahuan tentang definisi antarmuka kursor PEP 249.Seperti yang dikomentari oleh @JasonScheirer:
sumber