Mengomentari Permintaan Definisi di ArcGIS Desktop?

10

Saya sering menggunakan Query Definisi dalam kehidupan GIS sehari-hari saya, tetapi salah satu dari banyak hal yang saya anggap mengganggu tentang ArcMap adalah ketidakmampuan untuk memberikan komentar pada Definition Queries. Saya ingin memiliki opsi ini karena kadang-kadang saya ingin menghidupkan / mematikan Kueri Definisi atau saya ingin memiliki beberapa Kueri pada satu Shapefile, tetapi hanya satu yang aktif pada satu waktu.

Sejauh ini untuk menyiasatinya, saya biasanya hanya memiliki dokumen notepad di latar belakang dan salin dan tempel seperlunya. Tetapi solusi yang ideal adalah dengan menggunakan tab kueri definisi di properti layer untuk mengganti dokumen ini. Saya mungkin memiliki beberapa kueri berbeda pada sebuah layer, tetapi semua berkomentar.

Seperti yang saya mengerti, Definisi Pertanyaan ditulis dalam SQL. Untuk berkomentar dalam SQL, saya yakin Anda memulai sebuah baris dengan: - atau mencakup pernyataan dalam tanda kurung: {} . Saya sudah mencoba keduanya:

Original: "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Dashes:   --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
Brackets: {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}

Dua pernyataan terakhir mengembalikan kesalahan ekspresi SQL dan tidak akan menggambar di ArcMap. Saya tidak mencari solusi pemrograman, karena itu akan terlalu banyak bekerja.

Cody Brown
sumber
2
Saya tidak memiliki ArcGIS pada sistem ini untuk Diperiksa, tetapi apakah sesuatu seperti 'ATAU 1 = 1' atau mungkin bahkan ObjectID> -1 berfungsi?
Devdatta Tengshe
@DevdattaTengshe yang berfungsi terlalu banyak mengomentari permintaan: "OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'Itu solusi yang bagus, tapi saya mencari sesuatu yang sepertinya lebih seperti komentar yang sebenarnya keluar. Sesuatu yang dapat dilakukan dalam setiap bahasa kode, di mana Anda memiliki beberapa opsi permintaan pada baris yang berbeda dan semuanya kecuali satu dikomentari. Jika itu tidak mungkin, maka jadilah itu, tapi saya percaya itu akan menjadi pilihan yang bagus untuk dimiliki.
Cody Brown

Jawaban:

6

Hanya tebakan, tetapi alasan mengomentari itu tidak berfungsi mungkin karena permintaan definisi hanyalah bagian klausa WHERE dari pernyataan SQL yang lebih besar yang dibangun secara internal oleh ArcGIS setiap kali perlu query database yang mendasarinya, misalnya untuk menggambar lapisan . Ketika Anda menambahkan karakter komentar, ArcGIS masih menambahkan klausa WHERE dan DB aneh yang mendasarinya karena itu bukan SQL yang valid.

Pada dialog Pembuat Kueri ada tombol muat dan simpan. Simpan membuat file .exp yang kemudian dapat Anda muat kembali dengan tombol Load. Ini beberapa klik lebih banyak daripada yang mungkin Anda cari tetapi itu sesuatu.

blah238
sumber
Itu benar bahwa itu hanya bagian dari pernyataan yang lebih besar. Sangat mungkin bahwa DB aneh ketika kita menambahkan komentar, tapi aku tahu itu mungkin di program lain yang menggunakan SQL untuk menambahkan komentar di tengah pernyataan. Penghematan dan pemuatan .exp adalah sesuatu yang saya gunakan sebelumnya, tetapi seperti yang Anda katakan, beberapa klik lebih banyak daripada yang saya cari. Saya juga mencoba untuk mengurangi jumlah kode dan file yang dilampirkan ke setiap MXD yang saya miliki dan itu malah akan meningkatkannya.
Cody Brown
2
SELECT * FROM table WHERESQL tidak valid adalah apa yang saya maksudkan. Pasti ada sesuatu yang mengikuti kata kunci WHERE, atau kata kunci WHERE tidak perlu ada sama sekali. ArcGIS mungkin menambahkan DIMANA jika ada apa pun dalam Definisi Permintaan.
blah238
Saya mencoba SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'dan SELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}keduanya menghasilkan kesalahan yang sama. Ada sesuatu yang mengikuti WHERE, tetapi masih tidak dapat menangani komentar.
Cody Brown
1
Hah. Yah apa pun alasannya, jelas pendekatan berkomentar tidak akan berhasil.
blah238
4
Sebenarnya, sintaks komentar gaya-C sepertinya berfungsi. Coba ini misalnya: 1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/. Bekerja untuk saya di Oracle. Bagian 1 = 1diperlukan, hanya menggunakan komentar tidak berfungsi (Kesalahan Ekspresi Hilang).
blah238
4

Blokir comment / .. / tampaknya berfungsi selama Anda memiliki sesuatu di kueri definisi Anda. Jika Anda berkomentar semuanya, Anda harus memberi 1 = 1 sebelum baris komentar Anda

Contoh:

Semua berkomentar:

1=1  
/*  
  and ASSIGNMENT_STATUS <> 'Closed' 
  and DEVICE_TYPE = 'device'     
  and ASSIGNED_TO = 'somebody'    
*/

1 tanpa komentar, 2 berkomentar:

ASSIGNMENT_STATUS <> 'Closed' 
/* 
  and DEVICE_TYPE = 'device'     
  and ASSIGNED_TO = 'somebody'    
*/

2 tanpa komentar, 1 berkomentar:

ASSIGNMENT_STATUS <> 'Closed' 
DEVICE_TYPE = 'device'
/*      
  and ASSIGNED_TO = 'somebody'    
*/

Cukup pindahkan "/ " dan " /".

JasonT
sumber
1

XTools pro, add-on non-ESRI memiliki fitur yang memungkinkan untuk mengaktifkan / menonaktifkan querry definisi pada layer. Sangat berguna.

Anda juga dapat menyalin / menempelkan permintaan definisi Anda di tab properti Layer "General". Ada jendela di sana untuk "Deskripsi" yang sering tidak digunakan. Saya sering menyalin / menempel pertanyaan definisi saya di sana ketika saya harus mematikannya. Ada yang tersimpan di dokumen

Marie
sumber
Hmm kedengarannya bagus, tetapi apakah XTools membutuhkan biaya atau itu add-on gratis yang bagus?
Cody Brown