Bình luận các câu hỏi định nghĩa trong máy tính để bàn ArcGIS?


10

Tôi sử dụng Truy vấn Định nghĩa rất nhiều trong cuộc sống GIS hàng ngày của mình, nhưng một trong nhiều điều tôi thấy khó chịu về ArcMap là không thể nhận xét Truy vấn Định nghĩa. Tôi muốn có tùy chọn này vì đôi khi tôi muốn bật / tắt Truy vấn Định nghĩa hoặc tôi muốn có nhiều Truy vấn trên một Shapefile, nhưng mỗi lần chỉ có một hoạt động.

Cho đến nay để giải quyết vấn đề này, tôi thường chỉ có một tài liệu notepad trong nền và sao chép và dán khi cần thiết. Nhưng giải pháp lý tưởng sẽ là sử dụng tab truy vấn định nghĩa trong thuộc tính lớp để thay thế tài liệu này. Tôi có thể có nhiều truy vấn khác nhau trên một lớp, nhưng tất cả đều nhận xét.

Theo tôi hiểu, Truy vấn Định nghĩa được viết bằng SQL. Để nhận xét bằng SQL, tôi tin rằng bạn bắt đầu một dòng bằng: - hoặc bao gồm một câu lệnh trong ngoặc: {} . Tôi đã thử cả hai thứ này:

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

Hai câu lệnh cuối cùng trả về lỗi biểu thức SQL và sẽ không rút ra trong ArcMap. Tôi không tìm kiếm một giải pháp lập trình, vì đó sẽ là quá nhiều công việc.


2
Tôi không có ArcGIS trên hệ thống này để Kiểm tra, nhưng liệu một cái gì đó như 'HOẶC 1 = 1' hoặc thậm chí có thể ObjectID> -1 hoạt động?
Devdatta Tengshe

@DevdattaTengshe hoạt động quá nhiều bình luận ra một truy vấn: "OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'Đó là một giải pháp tuyệt vời, nhưng tôi đang tìm kiếm một cái gì đó có vẻ giống như một nhận xét thực tế. Một cái gì đó có thể được thực hiện trong mọi ngôn ngữ mã, nơi bạn có nhiều tùy chọn truy vấn trên các dòng khác nhau và tất cả trừ một được nhận xét. Nếu nó không thể, vì vậy nó là nó, nhưng tôi tin rằng nó sẽ là một lựa chọn tuyệt vời để có.
Cody Brown

Câu trả lời:


6

Chỉ là một phỏng đoán, nhưng lý do bình luận nó không hoạt động có lẽ là do truy vấn định nghĩa chỉ là phần mệnh đề WHERE của câu lệnh SQL lớn hơn được ArcGIS xây dựng bên trong bất cứ khi nào cần truy vấn cơ sở dữ liệu cơ bản, ví dụ để vẽ lớp . Khi bạn thêm các ký tự nhận xét, ArcGIS vẫn thêm mệnh đề WHERE và các freak DB cơ bản vì đó không phải là SQL hợp lệ.

Trên hộp thoại Trình tạo truy vấn có các nút tải và lưu. Save tạo một tệp .Exp mà sau đó bạn có thể tải lại bằng nút Tải. Đó là một vài lần nhấp chuột hơn bạn có thể đang tìm kiếm nhưng đó là một cái gì đó.


Đó là sự thật rằng nó chỉ là một phần của một tuyên bố lớn hơn. Rất có thể DB sợ hãi khi chúng ta thêm một nhận xét, nhưng tôi biết có thể trong các chương trình khác sử dụng SQL để thêm một nhận xét ở giữa một câu lệnh. Việc lưu và tải một .Ex là một thứ tôi đã sử dụng trước đây, nhưng như bạn đã nói, đó là một vài lần nhấp chuột nhiều hơn tôi đang tìm kiếm. Tôi cũng đang cố gắng giảm số lượng mã và tệp được đính kèm vào mỗi MXD mà tôi có và thay vào đó sẽ tăng nó.
Cody Brown

2
SELECT * FROM table WHERESQL không hợp lệ là những gì tôi đã nhận được. Phải có một cái gì đó theo từ khóa WHERE, hoặc từ khóa WHERE không cần phải ở đó. ArcGIS có thể thêm WHERE nếu có bất cứ điều gì trong Truy vấn Định nghĩa.
blah238

Tôi đã thử SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'SELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}cả hai kết quả trong cùng một lỗi. Nó có một cái gì đó theo sau WHERE, nhưng vẫn không thể xử lý các ý kiến.
Cody Brown

1
Huh. Dù lý do là gì đi nữa, rõ ràng phương pháp bình luận sẽ không hiệu quả.
blah238

4
Trên thực tế, cú pháp bình luận kiểu C trông giống như nó hoạt động. Hãy thử điều này ví dụ : 1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/. Làm việc cho tôi trên Oracle. Phần 1 = 1này là cần thiết, chỉ sử dụng nhận xét không hoạt động (Lỗi biểu hiện thiếu).
blah238

4

Nhận xét khối / .. / dường như hoạt động miễn là bạn có một cái gì đó trong truy vấn định nghĩa của bạn. Nếu bạn nhận xét mọi thứ, bạn cần đặt 1 = 1 trước khi dòng nhận xét của bạn

Ví dụ:

Tất cả nhận xét:

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

1 thiếu sót, 2 bình luận:

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

2 không chú ý, 1 bình luận:

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

Chỉ cần di chuyển "/ " và " /" xung quanh.


1

XTools pro, một add-on không ESRI có một tính năng cho phép bật / tắt một định nghĩa querry định nghĩa trên một lớp. Rất hữu dụng.

Bạn cũng có thể sao chép / dán truy vấn định nghĩa của mình trong tab "Chung" của thuộc tính Lớp. Có một cửa sổ ở đó cho "Mô tả" thường không được sử dụng. Tôi thường sao chép / dán các truy vấn định nghĩa của mình vào đó khi tôi cần tắt chúng. Có được lưu trong tài liệu


Hmm nghe có vẻ hay, nhưng XTools có tốn tiền hay nó là một tiện ích miễn phí đẹp?
Cody Brown
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.