File Geodatabase API .NET Wrapper: Bagaimana menentukan apakah Tabel / Kelas Fitur Terkunci?


10

Saya telah menggunakan file gdb API .NET wrapper, dan itu sudah sesuai dengan kebutuhan saya dengan baik (vs. menggunakan ArcObjects). Salah satu hal yang belum saya pahami adalah apakah ada cara yang tepat untuk menentukan apakah tabel atau kelas fitur (fc) dikunci sebelum mencoba menulisnya.

Apa yang telah saya lakukan adalah membungkus pembaruan / memasukkan dalam mencoba / menangkap, dan jika saya bisa 'tidak dapat memperoleh pengecualian kunci ...', saya tahu objek dikunci oleh sesuatu yang lain.

Apakah saya kehilangan cara yang lebih baik untuk mengetahui apakah tabel atau fc yang diberikan dapat ditulis?


Saya juga tertarik pada jawaban untuk pertanyaan ini, tidak hanya untuk File Geodatabase API, tetapi idealnya juga untuk ArcObjects.
stakx

Karena mereka adalah dua API yang sama sekali berbeda, saya sarankan untuk mengajukan pertanyaan terpisah. Saya tidak yakin apakah karunia itu bisa dipindahkan.
blah238

Saya setuju dengan @ blah238. Jawaban untuk ArcObjects adalah menggunakan The ISchemaLockInfo & ISchemaLock untuk memberikan informasi tentang kunci skema; Saya pikir tidak ada jawaban untuk API
Filegeodatbase

2
Penguncian tidak diekspos melalui file geodatabase API. Anda harus berusaha menulis, atau mendapatkan kunci tulis, dan menangani pengecualian.
travis

2
Apakah Anda mencoba Esri :: FileGDB :: Table :: IsEditable?
Kirk Kuykendall

Jawaban:


1

Saya tidak berpikir ada kait di file API geodatabase untuk ini secara eksplisit. Tetapi Anda dapat menggunakan solusi dengan memeriksa sistem file untuk keberadaan file "..sr.lock" seperti yang disebutkan di atas.

File geodatabases dibaca seperti folder pada sistem file dan akan ada satu dari file-file ini untuk setiap mesin pengguna yang memiliki koneksi aktif (atau tidak dikontrol ...) ke file geodatabase (satu di tabel _gdb) dan / atau fitur apa pun kelas yang terhubung dengan mereka.

Lebih cepat daripada menunggu kesalahan untuk kembali dari kegagalan akses. Jawaban MattB di atas dengan dashboard kunci adalah ide bagus untuk banyak pengguna.


0

Saya menggunakan ArcObjects dan telah menggunakan metode coba / tangkap yang Anda sebutkan.

Dalam kasus saya, lebih dari satu pengguna perlu membaca dan menulis data di kelas fitur yang sama di geodatabase. Saya memiliki "layar muat" yang muncul dan membuat pengguna tahu bahwa data sedang digunakan dan kemudian satu loop terus mencoba setiap beberapa detik di latar belakang sampai sebuah kunci dapat dibuat untuk mereka.

Cara lain saya menggunakan kunci dijelaskan di bawah ini. Saya tahu penggunaan metode ini untuk melihat file kunci berbeda dari apa yang ingin Anda lakukan tetapi konsepnya sama dan Anda mungkin dapat menggunakan sesuatu yang serupa jika Anda perlu menentukan jenis kunci atau siapa yang dimiliki oleh kunci tersebut. . Ini adalah info jika Anda tertarik.

Karena Anda dapat melihat file kunci spesifik, milik siapa, jenis kunci apa, dll. Jika Anda melihat di dalam geodatabase di Windows Explorer adalah membuat aplikasi "status" yang berdiri sendiri yang memantau file kunci spesifik kelas fitur yang kita semua gunakan.

Dengan menggunakan metode ini saya dapat melihat secara real time dari dasbor yang mudah dibaca yang memiliki kelas fitur yang dikunci (berdasarkan nama komputer) dan jenis kunci apa yang mereka miliki. Misalnya jika melihat kunci "sr" (skema), saya tahu mereka memiliki kelas fitur yang ditambahkan ke Daftar Isi mereka, kunci "rd" berarti mereka membaca dari kelas fitur, kunci "wr" berarti mereka sedang menulis data dan kunci "ed" berarti mereka memiliki sesi edit terbuka di kelas fitur.

Ini sangat membantu ketika melakukan pemeliharaan untuk dapat melirik ke bawah dan memastikan itu tidak akan memiliki efek negatif pada siapa pun. Entri "Tidak Dikenal" juga memperingatkan saya ketika seseorang yang tidak terduga menggunakan kelas fitur dan saya dapat menyelidiki lebih lanjut.

Ini adalah screenshot dari papan dasbor yang saya gunakan. Dashboard Status FeatureClass

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.