Często używam zapytań definicji w moim codziennym życiu GIS, ale jedną z wielu rzeczy, które mnie denerwują w ArcMap, jest brak możliwości komentowania zapytań definicji. Chciałbym mieć tę opcję, ponieważ czasami chcę włączyć / wyłączyć zapytanie definicji lub chcę mieć wiele zapytań na jednym pliku Shapefile, ale tylko jedno aktywne na raz.
Jak dotąd, aby to obejść, zwykle mam w tle dokument notatnika i kopiuję i wklejam w razie potrzeby. Ale idealnym rozwiązaniem byłoby użycie karty zapytania definicji we właściwościach warstwy w celu zastąpienia tego dokumentu. Mogę mieć wiele różnych zapytań na warstwie, ale wszystkie zostały zakomentowane.
Jak rozumiem, zapytania definicji są pisane w języku SQL. Aby komentarz w SQL wierzę, albo uruchomić linię z: - albo obejmować oświadczenie w nawiasach: {} . Próbowałem obu tych:
Original: "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Dashes: --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
Brackets: {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}
Dwie ostatnie instrukcje zwracają błąd wyrażenia SQL i nie rysują w ArcMap. Nie szukam rozwiązania programistycznego, ponieważ byłoby to po prostu zbyt wiele pracy.
źródło
"OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'
To świetne rozwiązanie, ale szukam czegoś, co wydaje się bardziej jak prawdziwy komentarz. Coś, co można zrobić w każdym języku kodu, w którym masz wiele opcji zapytań w różnych wierszach i wszystkie oprócz jednego są komentowane. Jeśli nie jest to możliwe, niech tak będzie, ale uważam, że byłoby to świetną opcją.Odpowiedzi:
Tylko zgadnij, ale powodem, dla którego to komentowanie nie działa, jest prawdopodobnie to, że zapytanie definicji jest po prostu częścią klauzuli WHERE większej instrukcji SQL zbudowanej wewnętrznie przez ArcGIS za każdym razem, gdy trzeba zapytać bazową bazę danych, na przykład aby narysować warstwę . Kiedy dodajesz znaki komentarza, ArcGIS nadal dodaje klauzulę WHERE i bazowych maniaków DB, ponieważ nie jest to poprawny SQL.
W oknie dialogowym Query Builder znajdują się przyciski ładowania i zapisywania. Zapisz tworzy plik .exp, który można następnie ponownie załadować za pomocą przycisku Załaduj. To kilka kliknięć więcej niż prawdopodobnie szukasz, ale to coś.
źródło
SELECT * FROM table WHERE
nie jest poprawny SQL, o co mi chodziło. Musi być coś po słowie kluczowym WHERE, inaczej słowo kluczowe WHERE wcale nie musi być. ArcGIS prawdopodobnie dodaje GDZIE, jeśli w zapytaniu dotyczącym definicji jest coś w ogóle.SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
iSELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}
oba powodują te same błędy. Ma coś poWHERE
, ale wciąż nie może obsłużyć komentarzy.1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/
. Pracował dla mnie na Oracle.1 = 1
Część jest potrzebna, używając tylko komentarz nie działa (brak błąd wyrażenie).Komentarz do bloku / .. / wydaje się działać, dopóki masz coś w zapytaniu dotyczącym definicji. Jeśli wszystko komentujesz, musisz wstawić 1 = 1 przed komentarzem
Przykłady:
Wszyscy skomentowali:
1 bez komentarza, 2 skomentował:
2 bez komentarza, 1 skomentował:
Po prostu przesuń „/ ” i „ /”.
źródło
XTools pro, dodatek inny niż ESRI, ma funkcję, która umożliwia włączanie / wyłączanie kwerendy definicji na warstwie. Bardzo przydatne.
Możesz również skopiować / wkleić zapytanie dotyczące definicji w zakładce „Ogólne” właściwości warstwy. Jest tam okno dla „Opisu”, które jest często nieużywane. Często kopiuję / wklejam moje zapytania definicji, kiedy muszę je wyłączyć. Są zapisane w dokumencie
źródło