Kopiowanie wysokości obiektów rzędnych do punktów w tabeli współrzędnych
| Kopiowanie wysokości obiektów rzędnych do punktów w tabeli współrzędnych | |
|---|---|
| Kategorie | Baza danych |
| GML | |
| Powiązania | Modyfikacja danych przez zapytanie SQL |
Poniżej opisano dwa sposoby przyspieszenia przygotowania danych do wykazu współrzędnych z wysokościami obiektów rzędnych. Jest to szczególnie przydatne przy dużych opracowaniach, gdy projekt zawiera kilkaset punktów, z czego znaczna część to rzędne terenu, urządzeń lub przewodów.
Sposób 1 - Wykorzystanie kilku funkcji programu
W pierwszej kolejności należy zmodyfikować używany szablon, na przykład MapaZasadnicza_2021.ZMP, dodając do tabeli współrzędnych pola: 'Rzedna', 'RzednaGory', 'RzednaDolu'. Po zapisaniu zmian można korzystać z tego szablonu przy kolejnych projektach.
Następnie w tabeli bazy danych rzędnych pogrupować i zaznaczyć pikiety/rzędne według typów (naturalna/sztuczna, rzędna urządzenia/przewodu):
Podświetlić kolumnę z wysokością do przekopiowania i użyć tej funkcji:
która działa tak, że wybiera się konkretną kolumnę docelową w tabeli współrzędnych, którą może być wcześniej założone pole w tabeli współrzędnych i nie trzeba przechodzić przez jakieś pośrednie kolumny:
Można samodzielnie dodać szablon np. na szablonie MapaZasadnicza_2021, zapisać pod tą samą nazwą i korzystać z niego, zmodyfikowanego o dodatkowe atrybuty ('Rzedna', 'RzednaGory', 'RzednaDolu').
Sposób 2 – Automatycznie za pomocą SQL
Można trochę pracy sobie oszczędzić:
- Zmodyfikować i zapisać pod tą samą nazwą szablon (MapaZasadnicza_2021.ZMP) dodając do tabeli współrzędnych potrzebne pola: 'Rzedna', 'RzednaGory', 'RzednaDolu',
- Wykonać w oknie bazy danych zapytanie SQL modyfikujące dane w tabeli, według poniższych skryptów, które należy wkleić w oknie wywołanym ikonką Modyfikacja danych przez zapytanie SQL (zrzut poniżej),
- W tych zapytaniach pojawia się ciąg znaków - "..\GML.db - który jest zależny od nazwy tabeli współrzędnych (w przykładzie jest to tabela współrzędnych o nazwie "GML"). Czyli w rzeczywistości należy zamiast GML wpisać nazwę swojej tabeli współrzędnej (np. abc). Zmienną zaznaczono na zielono na zrzucie poniżej,
- Podane w skryptach zmienne 168.db i 150.db to nazwy tabel: 168.db - OT_Rzedna i 150.db - GES_Rzedna. Jeśli struktura tabel w szablonie będzie niezmienna (nie zostaną dodane nowe bazy danych), to te tabele tak właśnie się nazywają. Numer ten jest widoczny w górnej części okna edytora SQL - zaznaczono na żółto na zrzucie poniżej.
Skrypt nr 1 (dla rzędnych BDOT):
update "..\GML.db" t set t.Rzedna = (select d.Rzedna from "168.db" d where d.Id_o=t.Id_p) where exists (select * from "168.db" b where b.Id_o=t.Id_p)
Skrypt nr 2 (dla rzędnych GESUT):
update "..\GML.db" t set t.RzednaGory = (select d.RzednaGory from "150.db" d where d.Id_o=t.Id_p), t.RzednaDolu = (select d.RzednaDolu from "150.db" d where d.Id_o=t.Id_p) t.Rzedna = (select d.Rzedna from "150.db" d where d.Id_o=t.Id_p), where exists (select * from "150.db" b where b.Id_o=t.Id_p)
==