Az előző fejezetben rövid áttekintést adtam a Map térképkezelő lehetőségeiről. A lehetséges funkciók tárháza természetesen sokkal bővebb, mint ami a segédlet kereteibe beleférhet, de a legjellemzőbb - és a térinformatikai alkalmazás szempontjából legfontosabb - eszközökkel mindenképpen foglalkoznunk kellett.
Ebben a fejezetben a Map adatkezeléssel kapcsolatos lehetőségeit szeretném áttekinteni. Ezekre a parancsokra a korábbiakban már többször hivatkoztam, hiszen a rajzi funkciók tárgyalásánál se lehetett őket kihagyni vagy kikerülni. Most azonban sok olyan eszközre és parancsra is sor fog kerülni, amelyeket az eddigiekben még nem említettem.
Mit is értünk adatkezelésen a Map-ben ? A megfogalmazás, illetve a fenti cím igazából nem elég pontos, hiszen mindaz, amiről az előző fejezetekben szó volt, lényegében adatkezelés: a grafikus adatok kezelése volt. A továbbiakban azokkal az adatokkal szeretnénk részletesebben foglalkozni, amelyek jellegükben nem grafikusak, de a rajzi-térképi állományhoz szorosan hozzátartoznak. Ezek egy része külön tevékenység nélkül is rendelkezésünkre áll, hiszen része magának a rajznak (pl. a fólia, vonaltípus, szín, terület, stb.), a többit pedig a megfelelő parancsokkal tudjuk hozzákapcsolni (pl. objektumadat, régebbi elnevezéssel attribútum). A lekérdezések használatával az objektumadatok tárolt értékei alapján visszakereshetők a rajzi objektumok.
A fejezet további részében megismerkedünk az objektumadatok használatával, a lekérdezések segítségével elérhető megjelenítésekkel, a külső adattábla csatolásának és használatának előnyeivel és hátrányaival, az SQL nyújtotta sokoldalú lehetőségekkel.
Az AutoCAD Map programmal két módszert használhatunk az objektumokhoz kapcsolódó szöveges információk tárolására. Az ilyen adatokat tárolhatjuk objektumadatként magában a rajzi állományban, valamint elhelyezhetjük őket egy külső, SQL adatbázisban. A két módszer közül a rajzi adattárolást az alábbi esetekben célszerű választanunk:
Kevés adatunk van. Ilyenkor nem érdemes egy külső adatbázisban tárolni őket, feltöltésük és lekérdezésük hatékonyan elvégezhető a Map program segítségével is.
Az adatokat csak a Map programon belül kívánjuk felhasználni, nem szándékozunk megosztani őket más alkalmazásokkal. A külső adatbázis létrehozása pont az ilyen cserekapcsolatok esetén indokolt és szükségszerű.
Az objektumadat egy megadott rajzi objektumhoz kapcsolódik és nem az objektumok egy széles halmazához. Ilyenkor egyszerű kezeléssel kapcsolhatjuk hozzá a megfelelő objektumhoz a kívánt adatokat.
Az adatok értékei hosszú távon állandónak tekinthetők, nincs szükség rendszeres karbantartásukra. A Map belső adatkezelése a rendszeres karbantartáshoz nem kínál eléggé hatékony eszközöket, erre a feladatra sokkal alkalmasabb egy megfelelő adatbázis-kezelő program (pl. Access, DBase, Oracle, stb.).
A rajzi állomány megnövekvő mérete nem okoz problémát a tárolásnál és az adatkezelésénél. Az adatok belső tárolása ugyanis megnöveli az AutoCAD rajzi állományának a méretét, és amennyiben a rajzunk e nélkül is nagy lenne, akkor ezzel a módszerrel a hatékony kezelés lehetőségei romlanának. Ilyen esetben célszerűbb a szöveges adatokat egy független, külső adatbázisban tárolni és amikor szükséges, hozzákapcsolni a rajzi állományhoz.
Az előbbiek alapján könnyen kitalálható és megfogalmazható, hogy mely esetekben célszerű az adatokat külső adatbázisban tárolni. A könnyebb áttekinthetőség érdekében azért foglaljuk ezeket az indokokat is össze:
Ha az adatokat az AutoCAD programon kívül más alkalmazásban is fel szeretnénk használni, akkor erre a legkézenfekvőbb módszer a külső adatbázisban való tárolásuk.
Ha a rajzi objektumok törlésénél nem akarjuk elveszíteni a hozzájuk kapcsolt szöveges információt. Ha az adatokat objektumadatként tároljuk, akkor azok mindig egy meghatározott rajzi objektumhoz kapcsolódnak. Ha ezt az elemet töröljük, értelemszerűen a hozzákapcsolt szöveges adat is elvész.
Csökkenteni szeretnénk a rajzi állomány méretét. Ez a lehetőség akkor is a rendelkezésünkre áll, ha eleinte a rajz mérete még nem indokolta a külső adatbázis használatát és a munkát úgy kezdtük, hogy az adataink belső objektumtáblákba kerültek. Ha menet közben kiderül, hogy az állományunk mérete túlzottan felduzzadt, a belső adattábláinkat átalakíthatjuk külső adatbázisokká, ezáltal a rajzi állomány méretét munka közben is jelentősen csökkenthetjük.
Az AutoCAD Map program az objektumadatokat un. objektumadat táblában tárolja. A tábla minden egyes rekordja egy-egy rajzi objektumhoz kapcsolódik. Az adott objektumhoz rendelt értékek a tábla mezőiben tárolódnak. Az objektumadat táblák számára és a bennük tárolható adatmennyiségre nincs korlátozás, ezek mérete csak az előzőekben leírtak miatt érdemel figyelmet. Az objektumadat objektumhoz kapcsolásakor egy adott objektumhoz egy meghatározott tábla új rekordja kerül. A tábla létrehozásakor felhasznált lehetőségeknek megfelelően ennek a rekordnak a mezői tartalmazhatnak alapértelmezés szerinti értéket is, amely persze szükség esetén bármikor átírható vagy módosítható. Ugyanahhoz a rajzi objektumhoz több, ugyanabból vagy különböző táblából származó rekord is csatolható.
Az objektumadatok létrehozása két lépésből álló folyamat:
Előbb hozzunk létre egy objektumadat táblát a szükséges adatok megadásával.
Kapcsoljuk össze az objektumadatokat az objektumokkal.
Az első lépés végrehajtásához
előbb meg kell tervezni a megfelelő adatszerkezetet, majd ennek
megfelelően létre kell hozni az objektumadat táblát.
A Map menüből válasszuk ki az Object Data
(objektumadat) almenü Define Objekt Data (objektumadatok
megadása) parancsát vagy nyomjuk meg az eszközsávon
a
ikont (2.1 ábra). A megjelenő párbeszédablakban
válasszuk a New Table (új tábla)
nyomógombot, ennek megnyomása után a 2.1 ábrán
látható további ablak jelenik meg előttünk.
Ennek segítségével adhatjuk meg a tábla
mezőinek tulajdonságait. Először a Table Name
(tábla neve) mezőbe írjunk be egy kifejező és
egyedi nevet az objektumadat tábla azonosítására.
A név szóköz karaktert nem tartalmazhat. Ezt
követően a Field Definition (mező meghatározása)
területen töltsük ki a Field Name (mezőnév),
Type (adattípus), Description (leírás)
és a Default (alapértelmezés) mezőket a
megfelelő adatokkal. Az adattípus listának négy
lehetséges értéke van, ezek: Integer
(egész), Character (karakter), Point (pont) és
Real (valós), ezek értelmezése a
szokásos. A mezők kitöltését az Add
(hozzáad) gomb megnyomásával zárjuk,
ekkor a megadott mező felkerül az Object Data Fields
(objektumadat mezők) területre. A hibásan felvitt mezők
külön-külön vagy mindegyik egyszerre törölhetők
a Delete vagy a Delete All nyomógombok
segítségével.

2.1 ábra Objektumadat megadás párbeszéd ablakai
Az objektumadat tábla módosítása a Define Object Data párbeszédablak Modify (módosítás) nyomógombjával történhet, ekkor a Table (tábla) mezőben kiválasztott objektumadat tábla mezői módosíthatók az előbbiek szerint.
Az objektumadat tábla létrehozása után következik az objektumokkal való kapcsolat kiépítése. Az AutoCAD Map program az objektumadat alapértelmezését minden kijelölt objektumhoz hozzákapcsolja, majd egyesével kiemeli őket, hogy szükség esetén az értékeket módosítani lehessen. Egy objektum egyidőben több objektumadat táblával is kapcsolatban lehet. Ha a kapcsolatra már nincs szükségünk, a leválasztás is megoldható.
Az objektumadat tábla és az objektumok
összekapcsolásához válasszuk a Map
menü Objeck Data (objektumadat) almenüjéből
az Attach/Detach Object Data (objektumadat
csatolása/leválasztása) pontot vagy nyomjuk meg
az eszközsávban a
ikont (2.2 ábra). A Table (tábla) listából
válasszuk ki a kapcsolni kívánt táblát,
majd ha szükséges, az Object Data Field (objektum
adat) listán szereplő mezők értékeit a Value
(érték) területen beállíthatjuk
annak érdekében, hogy a kijelölt objektumokhoz ezt
az értéket hozzárendelhessük. Az Action
(művelet) területen az Attach to Objects (objektumok
csatolása) gomb megnyomása után jelölhetjük
ki a megjelenő térképen a csatolni kívánt
objektumokat. Amennyiben az Overwrite (felülír)
jelölőnégyzet aktív, akkor a kijelölt
objektumokhoz korábban hozzárendelt értékek
felülíródnak, ellenkező esetben az új
értékeket hozzáadja a program a meglévőkhöz.

2.2 ábra Objektumadat tábla objektumokhoz kapcsolása
Az objektumadatok leválasztása az előbbiekhez hasonlóan történik, csak most értelemszerűen a Detach from Objects (objektumokról leválasztás) nyomógombot kell kiválasztanunk. Arra is lehetőségünk van, hogy az objektumokról csak a hozzájuk kapcsolt adatok egy részét válasszuk le, ilyenkor az Object Data Field területen kell kijelölni a leválasztásra váró mezők neveit.
Az objektumadatok szerkesztésével kapcsolatosan fontos tudni, hogy amennyiben egy objektumadattal rendelkező objektumot több részre törünk vagy vágunk, akkor az objektumadat tábla csak ahhoz az elemhez marad hozzákapcsolva, amelyiknek a kezdőpontja az eredeti kezdőponthoz közelebb esik vagy azzal megegyezik. Az objektumadattal rendelkező objektum másolásakor az objektumadat teljes egészében másolásra kerül.
Az objektumadatokkal természetesen műveletek is végezhetők. Az objektumokhoz kapcsolt adatok módosíthatók, eltávolíthatók vagy további objektumokhoz csatolhatók. A műveletek elvégzéséhez rajzszerkesztői jogosultsággal kell rendelkezni az Autodesk Map programban.
A szerkesztés elvégzéséhez nyomja meg
az eszköz sáv
ikonját vagy válassza ki a Map menü Object
Data almenüjéből az Edit Object Data
(objektumadat szerkesztése) parancsot (2.3 ábra). A
Table (tábla) listából keressük ki a
kívánt objektumadat tábla nevét, majd a
Select Object (objektum választás) nyomógombbal
jelöljük ki sorba a módosítandó
objektumokat. Az Object Data Field (objektumadat mező)
területen mutassunk rá arra a mezőnévre, amelynek
a tartalmát módosítani szeretnénk, majd a
Value (érték) területre írjuk be az
új értéket. Az Enter billentyű
megnyomásával ez az érték bekerül az
objektumadat táblába, a kijelölt objektum
adataként. Az eljárást további mezőkre,
illetve újabb objektumokra folytathatjuk a fentiek szerint.

2.3 ábra Objektumadatok szerkesztése párbeszéd ablak
Az Insert Record (rekord beillesztése) nyomógombbal egy újabb adatrekord fűzhető hozzá a kijelölt objektumhoz. Ilyenkor a Record# területen a 2/1, 3/1 stb. felirat jelzi az objektumhoz csatolt rekordok számát, illetve az éppen szerkesztés alatt álló sorszámát. A Delete Record (rekord törlése) nyomógombbal az aktuálisan kijelölt objektumból a megadott sorszámú rekord törlődik.
Az objektumokhoz csatolt adatok jól használhatók lekérdezések létrehozásához. A lekérdezésekkel részletesebben a 2.2 fejezetben foglalkozom, most csak jelezni szeretném, hogy a lekérdezés megadásánál a Data (adat) területen tudjuk maghatározni a keresett objektumok adatait.
Az AutoCAD Map program használatánál szét kell választani a rajzszerkesztési és a térinformatikai funkciókat. A rajzszerkesztéshez mindazok a parancsok felhasználhatók, amelyeket az AutoCAD 14-es verziója ismer. Ezekről a megfelelő kézikönyvekben lehet ismereteket szerezni. A rajzszerkesztés eredményeként kapott rajzokat a Map forrásrajznak nevezi. A forrásrajzokból egy konkrét alkalmazáshoz tetszőleges számú lehet hozzákapcsolva, ezek vagy aktív vagy passzív állapotban lehetnek. A térinformatika feladatok elvégzéséhez ezeket a forrásrajzokat, illetve egy meghatározott részüket át kell másolnunk a munkatérbe, ahol velük a kívánt feladatok elvégezhetők. A kinyerhető objektumhalmazok megadásához felhasználhatók a belső és a külső adatállományok információi is. Az adatok ilyen módon történő átvitele a munkatérbe az AutoCAD Map szóhasználatával a lekérdezés.
A lekérdezés megadásánál az objektumok kiválasztásának a feltételeit tudjuk meghatározni. A feltételeknek négy különböző típusa van, ezek külön-külön és egymással kombinálva is használhatók a lekérdezés létrehozásánál. A négy típus az alábbiak szerint foglalható röviden össze:
Hely szerinti lekérdezés. Az adatoknak a forrásrajzban való elhelyezkedése alapján történik a válogatás.
Tulajdonság szerinti lekérdezés. Ebbe a csoportba az AutoCAD jellemző tulajdonságai alapján történő lekérdezések tartoznak. Ilyen tulajdonság az objektum színe, vonaltípusa, rétege vagy magassága.
Adatok szerinti lekérdezés. Olyan információkra épül, amelyeket a rajzfájl nem-grafikus objektumadatként tárol. Ebbe a csoportba sorolhatók az előző fejezetben megismert objektumadat táblákban tárolt információk, de ilyenek a blokk-attribútumok is.
SQL alapú lekérdezések. Ez a csoport a külső adatbázisokban tárolt és onnan visszanyerhető információkat használja fel a lekérdezések szervezéséhez. A lekérdezés megvalósításához az SQL utasításai is használhatók.
A lekérdezés a benne megfogalmazott egyszerű vagy összetett feltételeknek megfelelően átvizsgálja az aktív forrásrajzi állományokat, kiválasztja belőlük a feltételeknek eleget tevő rajzi elemeket, és az így kinyert objektumokat átmásolja a munkatérbe, ahol az eredmény megtekinthető vagy további elemző munkához felhasználható.
A továbbiakban tekintsük át kicsit részletesebben - de ismételten csak a teljesség igénye nélkül - a lekérdezések létrehozásának főbb lépéseit és lehetőségeit.
A lekérdezés megadásához nyomjuk meg
az eszközsáv
ikonját vagy válasszuk ki a Map menü Querry
(lekérdezés) almenüjéből a Define Querry
(lekérdezés megadása) parancsot (2.4. ábra).
A megjelenő párneszéd ablakban előbb határozzuk
meg a lekérdezés feltételeit. A Querry Type
(lekérdezés típusa) területen válasszunk
a Location (hely), a Property (tulajdonság), a
Data (adat) és az SQL lehetőségek közül.
Az egyes lekérdezések összekapcsolására
használjuk az And (és), az Or (vagy)
illetve a Not (nem) operátorokat. Ezek a logikai
operátorok a következő feltételnek az előzőekhez
való viszonyát határozzák meg. A
lekérdezés típusa opciókat a Map
az alábbiak szerint értelmezi:

2.4 ábra Lekérdezés létrehozása párbeszéd ablak
A hely szerint kiválasztás párbeszédablaka
a 2.5 ábrán látható. Ebben a felsorolt

2.5 ábra Hely szerinti lekérdezés megadása
lehetőségek közül egyszerre egy választható ki, de természetesen az utasítás ismételt meghívásával a feltételek itt is összekapcsolhatók. A Boundary Type (határ típusa) opciók közül választhatjuk az All (mind), a Buffer Fence (sáv), a Circle (kör), a Fence (felfűz), a Point (pont), a Polygon (poligon), a Polyline (vonallánc) és a Window (ablak) lehetőséget. A Selection Type (választás típusa) területen jelöljük meg az Inside (belül) illetve a Crossing (metsz) opciók egyikét az elemek kiválasztásának szabályozására. Ezt követően kattintsunk a Define (megad) nyomógombra és a megjelenő rajzi ablakban határozzuk meg a választásunknak megfelelő rajzterületet. A kijelölést az AutoCAD-ben megismert módon végezhetjük el.
Az objektumok tulajdonság szerinti kiválasztását a 2.6 ábrán látható párbeszéd ablak segíti. A Select Property (tulajdonság kiválasztása) területen adjuk meg azt a tulajdonságot, ami alapján a lekérdezést vezérelni akarjuk. Amennyiben szükséges, a megfelelő értéket a Value (érték) mezőbe gépeljük be, és az előtte álló Operator (művelet) mező legördülő listájából válasszunk hozzá egy alkalmas logikai operátort. Az egyes opciók jelentése: Area (terület), Block Name (blokknév), Color (szín), Elevation (szint), Object Type (objektum típus), Group (csoport), Layer (fólia), Length (hossz), Linetype (vonal típusa), Text Style (szöveg stílus), Text Value (szöveg) és Thickness (vastagság). Ezek mindegyike az AutoCAD egy-egy objektumtulajdonságának felel meg, és a kiválasztás azokat az objektumokat érinti, amelyek ezen tulajdonágnak megfelelnek.

2.6 ábra Tulajdonság szerinti lekérdezés megadása
Az objektumok objektumadatok alapján történő kiválasztását a 2.7 ábrán látható párbeszéd ablak segíti. Az első sorban három opció közül választhatunk. Az Attribute (attribútum) az aktív forrásrajzban található blokkok és a hozzá tartozó attribútumok alapján teszi lehetővé a keresést. Az Object Data (objektumadat) választással a forrásrajzok objektumadatai és a hozzájuk rendelt mezők értékei szerint végezhetünk leválogatást. Az ASE Link (ASE csatolás) az aktív forrásrajzokhoz kapcsolt külső adatbázisok oszlopai alapján definiált lekérdezést tesz lehetővé. Ebben az esetben az adatok kinyeréséhez az SQL szerinti lekérdezést kell alkalmaznunk. A fenti lehetőségek megválasztása után az Object Data Fields (objektumadat mezők) területen megjelennek a Table (táblák) listájából kiválasztott adathalmaz mezői. Ezek bármelyikére vonatkozó feltételt megadhatunk az Expression (kifejezés) mezőben és kapcsolhatunk hozzá egy megfelelő logikai operátort a Operator (művelet) listából.

2.7 ábra Adat szerinti lekérdezés párbeszéd ablaka
A lekérdezésre szánt objektumok kiválasztásához az objektumainkhoz kapcsolt külső adatbázis oszlopai is felhasználhatók. Ehhez az SQL utasításait kell alkalmaznunk. Részletesebben erről a kérdésről a 2.3 fejezetben lesz szó.
Az előző három párbeszéd ablakban elvégzett beállítások eredménye a Define Querry párbeszéd ablak tartalmát a 2.8 ábrán látható módon változtatja meg.

2.8 ábra A lekérdezési feltételek beállítása
Az így összeállított lekérdezés a földrészleteket és a rajtuk található épületeket tartalmazó mintaterületen a 2.9 ábrán látható kiválasztást eredményezi. Az ábrán látható kört külön utasítással hívtam a képre, csak az a szerepe, hogy jelezze a lekérdezésben szereplő hely feltételt.

2.9 ábra összetett lekérdezés eredménye
A létrehozott lekérdezésekben a lekérdezési feltételek utólag is módosíthatók, de nem lehet megváltoztatni a lekérdezés típusát (hely vagy tulajdonság, stb.). Ha erre is szükségünk lenne, csak a feltétel letörlésével és újra definiálásával tudjuk ezt elérni. A feltételekben szereplő logikai operátorok módosítása azonban lehetséges.
A lekérdezés szerkesztése parancsot ugyanúgy kell aktivizálni, mint a lekérdezés létrehozását, vagyis ezt az utasítást is a Define Querry (lekérdezés megadása) párbeszédablak vezérli. Ebben az utoljára létrehozott lekérdezés adatai és paraméterei jelennek meg. A módosításra váró feltételt jelöljük ki a Current Querry (aktuális lekérdezés) listán és nyomjuk meg az Edit (szerkeszt) gombot. A Map megjeleníti a kiválasztott feltételnek megfelelő típusú párbeszédablakot, ahol a feltétel módosítása elvégezhető. Például a hely szerinti feltétel módosításánál a Show (mutat) nyomógomb a képernyőn megjeleníti a korábban beállított feltétel szerinti határvonalat. A javítás elvégzése után az OK nyomógombbal rögzíthetjük a változásokat. A logikai operátor módosításához a Current Querry területen válasszuk ki azt a feltételt, amelyben módosítani szeretnénk az operátort. Kattintsunk az Edit gombra, majd ezt követően nyomjuk meg az OK gombot. Az operátor módosított értéke megjelenik a Current Querry területen.
A definiált lekérdezések végrehajtása három üzemmódban végezhető el. Ennek meghatározása a Querry Mode (lekérdezés módja) területen a megfelelő rádiógomb megnyomásával végezhető el. Az egyes üzemmódok hatása a következő:
Prewiev (előnézet) módban ellenőrizhető, hogy a lekérdezés azokat az objektumokat nyeri ki, amelyekre szükségünk van. A kiválasztott elemeket nem másolja át a munkatérbe, így a lekérdezés módosítása egyszerűen elvégezhető. Viszont a képernyőn megjelenő látvány ellenére a kinyert objektumok nem szerkeszthetők, és a View (nézet) menü Redraw (frissítés) parancsával a képernyőről is letörölhetők. érdemes azt is megjegyeznünk, hogy az előnézet módban a képernyőn megjelenő (látszólag) sok objektumot az AutoCAD Map egy elemnek érzékeli, így ebben a módban további információkat az objektumokról nem nyerhetünk.
Draw (rajz) módban a lekérdezés kigyűjti és a munkatérbe másolja a feltételeknek megfelelő objektumokat, ahol azokkal további műveletek végezhetők. A munkatérbe került objektumok már csak az AutoCAD Erase (törlés) parancsával tüntethetők el. Az egymást követő lekérdezések eredményei folyamatosan bővíthetik a munkatér tartalmát, de azok a rajzi objektumok, amelyeket egy előző lekérdezés során kaptunk, ismételten nem kerülnek be a munkatérbe, nem történik meg a duplikálásuk.
Report (riport) módban a lekérdezés eredménye egy ASCII fájlba kerül, ahol valamely szövegszerkesztő programmal megtekinthető a tartalma.
A lekérdezés feltételeinek eleget tevő
objektumok tulajdonságai, úgymint szín,
vonaltípus, vagy a vonallánc vastagsága, stb.,
valamint a csatolt szövegek jellemzői a munkatérbe
történő bemásolás során úgy
változtathatók meg, hogy ez a változás az
eredeti forrásrajzot nem módosítja. A
változtatás elvégzését a Define
Querry párbeszéd ablak Alter Properties
(tulajdonság megváltoztatása) nyomógombjával
hívhatjuk be (2.10 ábra). A Select Property
(tulajdonság kiválasztása) területen
jelöljük be az elsőként megváltoztatni kívánt
tulajdonságot. Az Expression (kifejezés) ablakba

2.10 ábra Tulajdonságok módosítása lekérdezés során
írjuk be a megváltoztatásra szánt tulajdonság értékét. A beírás helyett megnyomhatjuk a Values (értékek) gombot is, ekkor a megjelenő listából választhatjuk ki a kívánt értéket. Az adatok megadása után nyomjuk meg az Add (hozzáad) gombot, ekkor a beállítás felkerül a Current Property Alteration (aktuális tulajdonság változtatások) területre. Minden egyes további tulajdonság megváltoztatásához a fentiek szerint járjunk el, majd befejezésül nyomjuk meg az OK gombot. A lekérdezés végrehajtásához a Define Querry párbeszéd ablakban kattintsunk az Execute Querry nyomógombra. A fenti példának megfelelő lekérdezés módosított eredménye a 2.11 ábrán látható.

2.11 ábra Lekérdezés eredménye a tulajdonságok módosítása után
A létrehozott lekérdezés mindaddig aktív marad és megőrződik, amíg egy újabbat nem hozunk létre. így módosítása vagy bővítése bármikor elvégezhető és a módosított lekérdezés ismételten végrehajtható. Ha azonban egy lekérdezés helyett egy teljesen újat szeretnénk előállítani úgy, hogy közben az előző lekérdezés beállításai ne vesszenek el, akkor ehhez a lekérdezések elmentésére van szükségünk. A Map rendelkezésünkre bocsátja ezt a parancsot, így a mentésnek és a későbbi betöltésnek nincs akadálya.
A Define Querry párbeszéd ablakban a lekérdezés létrehozása után válasszuk a Save (mentés) nyomógombot (2.12 ábra). A lekérdezések kategóriákba sorolhatók, ezért első lépésként a Category (kategória) listából válasszunk egy korábban létrehozott kategóriát vagy hozzunk létre egy újat a New Category (új kategória) gomb megnyomásával. A Name (név) és a Description (leírás) mezőket töltsük ki úgy, hogy a lekérdezés nevének teljesen egyedinek kell lennie még különböző kategóriák használata esetén is. A Save to External File (mentés külső fájlba) opció kiválasztásával egy tetszőleges könyvtárba és fájlba menthető a lekérdezés. A File Name (fájl név) mezőbe közvetlenül beírhatjuk a fájl nevét és elérési útját vagy a Browse (tallóz) nyomógombbal válogathatunk a meghajtók és a könyvtárak között. A Save Options (mentési opciók) területen számos beállítási lehetőséget kínál fel a Map a lekérdezések elmentéséhez és későbbi azonosításához. A mentés elvégzésére az OK gomb megnyomása után kerül sor.

2.12 ábra Lekérdezés elmentése párbeszéd ablak
A belsőleg elmentett lekérdezések utólag betölthetők, átdolgozhatók és végrehajthatók. A külsőleg elmentett lekérdezések közvetlenül nem tölthetők be, mivel a formátumok AutoLisp (ez a fájl viszont végrehajtható az AutoLisp környezetben, ott átszerkeszthető, módosítható és futtatható). A külsőleg elmentett lekérdezések a Map menü Querry almenüjének Run External Querry (külső lekérdezés futtatása) parancsával hajthatók végre (2.13 ábra).
A belső lekérdezések betöltéséhez hívjuk meg a Map menü Querry almenüjének Run Querry (lekérdezés futtatása) parancsát (2.13 ábra).

2.13 ábra Belső és külső lekérdezés futtatása
A Category (kategória) listából válasszuk ki a megfelelő nevet majd a Querries (lekérdezések) területen válasszuk ki a végrehajtandó lekérdezés nevét. A Run Querry (lekérdezés futtatása) nyomógombbal intézkedhetünk a lekérdezés betöltéséről és egyidejűleg a végrehajtásáról is. Akár belső, akár külső lekérdezést hajtottunk végre, a Define Querry ablakben ettől kezdve ez a lekérdezés számít aktuálisnak és szerkeszthető vagy módosítható a tartalma.
Az AutoCAD Map programból a külső adatbázisban tárolt adatok könnyen elérhetők és felhasználhatók a különböző lekérdezések vagy leválogatások összeállításához. Ennek elvégezhetőségéhez a külső adatbázisban tárolt adatokat össze kell kapcsolnunk a rajzi objektumokkal, ezt követően már használhatjuk őket a lekérdezésekben.
|
|
Objektumadat |
Külső adatbázis adat |
|
Kezelhetőség |
Egyszerű a használata |
összetettebb: konfigurálás, SQL szintaxis. Több előkészületet és karbantartást igényel |
|
Elem és szöveg csatolása |
Az objektumok nem választhatók el a kapcsolódó adattól |
Az objektum és az adat közötti csatolás törölhető az adat elvesztése nélkül |
|
Lekérdezések |
Csak egyszerű lekérdezések |
Bonyolult lekérdezések is lehetségesek |
|
Fájlzárolás |
Csak olvasható fájlokkal |
Az adatokhoz egyidejű hozzáférés biztosítható több felhasználónak is |
|
DWG rajzméret |
Növekedés |
Nagyon kicsi növekedés: a csatolás az objektumokkal |
|
Adatkezelési követelmények |
Karbantartás és biztonsági másolat a DWG fájlban |
Karbantartás és biztonsági másolat a DWG fájlban és az adatbázis fájlokban |
|
Adathozzáférés |
Csak kapcsolt térképek |
Az összes térkép adataihoz kapcsolható. A Map program nélkül is szerkeszthető |
|
Adatszerkezet |
Egyszerű: egész szám, valós szám, sztring vagy koordináta |
Változó: numerikus, sztring, dátum, logikai, szabad-formátumú, memo |
|
Adatmegosztás |
Csak AutoCAD, ADE és AutoCAD Map |
AutoCAD, AutoCAD Map és bármelyik adatbázis-kezelő rendszer |
2.1 táblázat Az objektumadat tábla és az adatbázis előnyei és hátrányai
Az adatbázisok, adattáblák fogalmával a jelen segédletben nem kívánok foglalkozni, a szükséges ismeretek az irodalomjegyzékben is szereplő vagy más művekből megtudhatók. A továbbiakban az Access programmal létrehozott és feltöltött adattáblákat fogok használni, de a Map lehetőséget ad a DBase, az Oracle vagy az ODBC felületen keresztül bármely más, relációs adatbázishoz való hozzáféréshez. Az adatbázis-tábla sorait a továbbiakban rekordnak, az oszlopait attribútumnak, a sor és oszlop találkozásánál található adatot pedig mezőnek fogom nevezni.
Mielőtt a konkrét tevékenységeket ismertetném, szólni kell egy pár szót az objektumadat tábla és a külső adatbázis használatához kapcsolódó előnyökről és hátrányokról. A 2.1 táblázatban foglaltam össze a kétfajta adatkezelési módszerrel kapcsolatos észrevételeket. A táblázatban felsorolt megállapítások segítenek annak eldöntésében, hogy egy konkrét alkalmazásban a belső objektumadat táblát vagy külső adatbázis kapcsolatot érdemes felépítenünk.
Mielőtt a külső adatbázisokkal bármilyen műveletet végeznénk, a használni kívánt adatbázis táblát hozzá kell kapcsolnunk a munkaterünkhöz. Az adatbázisok munkatérhez kapcsolásához válasszuk a Map menü Database (adatbázis) almenüjéből az Attach Database (adatbázis kapcsolása) parancsot (2.14 ábra). A Select Database Type (adatbázis típus választása) párbeszéd ablakban a Select Type of Database to Attach (a csatlakoztatni kívánt adatbázis típusa) területen jelöljük be annak az adatbázis-kezelőnek a típusát, amelyet használni kívánunk.

2.14 ábra Adatbázistípus kiválasztása
Az OK gomb megnyomása után a Map áttér a 2.15 ábrán látható Attach Database (adatbázis csatolása) párbeszédablakra, ahol megadhatjuk a kapcsolandó adatbázis tábla nevét. A lehetséges fájlok listájából csak azok jelennek most meg a képernyőn, amelyek a kiválasztott adatbázis-kezelő típusának megfelelnek. A csatlakozás elvégzéséhez az adatbázis tábla elérését biztosító jelszó megadására is szükségünk lehet, ezt a Connect to Environment (csatlakozás a környezethez) párbeszéd ablakban tehetjük meg.

2.15 ábra Adatbázis kiválasztása csatoláshoz
A memória felszabadításához lekapcsolhatjuk az éppen nem használt adatbázis táblákat úgy, hogy azok továbbra is a munkatérhez lesznek csatolva, csak ez a kapcsolat az újbóli felépítésig nem lesz aktív, így nem foglalja a memóriát. Ha egy adatbázis táblát már nem kívánunk használni, akkor véglegesen is leválaszthatjuk a munkatérről, ekkor újbóli eléréséhez ismét a munkatérhez kell csatolnunk.
Az adatbázis tábla lekapcsolásához a Map menü Database almenüjéből a Disconnect Database (adatbázis-kapcsolat megszüntetése) parancsot kell választanunk (2.16 ábra). A Select Database to Disconnect (adatbázis választás a kapcsolat megszüntetéshez) listáján jelöljük meg a lekapcsolandó adatbázis nevét, majd nyomjuk meg a Disconnect gombot.

2.16 ábra Az adatbázis lekapcsolás és visszakapcsolás párbeszéd ablakai
A visszakapcsoláshoz a teendők ehhez hasonlóak, csak most a Map menü Database almenüjéből a Connect Database parancsot kell aktivizálnunk (2.16 ábra). Mindkét esetben a Close (bezár) nyomógombbal fejezhetjük be a tevékenységünket.
Az adatbázis csatolása után már lehetőségünk van a táblázatban tárolt adatok megtekintésére. Ehhez a Map menü Database almenüjének Browse Database (adatbázis böngészése) listájából válasszuk ki a Table (tábla) parancsot. A Database listából válasszuk ki az adatbázist, a Table listából pedig a megtekintendő tábla nevét. Az OK gomb megnyomása után a képernyőn megjelenik a kért adatbázis. A táblázat oszlopainak szélessége, a képernyőn megjelenő terület nagysága az egér segítségével átszerkeszthető, a 2.17 ábrán az átméretezett táblát láthatjuk.

2.17 ábra Adatbázis tábla megtekintése
A Data View (adatnézet) ablak önálló menüvel rendelkezik, amelyben parancsok sora segít bennünket az adattábla rendezésében, átméretezésében vagy a legmegfelelőbb nézetének megválasztásában. Ezeket a lehetőségeket most nem kívánom részletesebben tárgyalni, használatuk igen egyszerű és logikus.
Az adatbázis tábla előző pontban bemutatott megjelenítése alapján igen sok információhoz juthatunk a tábla tartalmáról, de a térinformatikai lehetőségek tárgyalása szempontjából számunkra az lenne az igazán hasznos, ha a rekordokat a rajzi objektumokhoz tudnánk kapcsolni, majd a különböző lekérdezésekben a tárolt információt felhasználva állíthatnánk elő a rajzi objektum megfelelő részhalmazát. Nos, a Map természetesen kiválóan alkalmas ennek a feladatnak az elvégzésére is.
Az adatbázis tábla rajzi objektumokhoz való hozzákapcsolásának első lépése a Link Path Name (csatolási útvonalnév) megadása. Ez az információ kapcsolja össze az adatbázis tábla egyik (kulcs) oszlopát a rajzi objektum azonosítójával. A rajzi objektum azonosítóját négy lehetőség közül lehet kiválasztani:
Blokk - a kapcsolat a blokk attribútumon keresztül jön létre, általában a blokk ID-je (azonosítója) egyezik meg az adatbázis tábla kijelölt kulcs oszlopának értékeivel.
Szöveg - a csatolás a szövegből jön létre. Ilyen esetben a szöveg tartalmának kell egyeznie a kulcs oszlop értékeivel. A csatolás a szöveghez kapcsolja az adatbázis rekordjait.
Zárt blokk - a kapcsolat most is a blokk attribútumokon keresztül jön létre, de ezek a blokkok egy zárt vonallánc belsejében helyezkednek el. A csatolás a zárt vonalláncokra vonatkozik.
Zárt szöveg - a kapcsolat olyan szövegekre épül fel, amelyek egy zárt vonallánc belsejében helyezkednek el. A csatolás most is a zárt vonalláncokra vonatkozik.
Fontos megjegyezni, hogy az utóbbi két esetben a blokknak és a szövegnek egy zárt vonallánc belsejében kell lennie. Nem elegendő tehát a határoló objektumok folytonos csatlakozása, csak a vonalláncok létezése esetén jön létre a kapcsolat. Ezért, amint azt a második példában látni fogjuk, a vonallánc létrehozásához szükségünk lesz némi kis trükk alkalmazására.
Az adatbázis tábla csatolásának két módját szeretném bemutatni példákon keresztül, természetesen most is csak egy-egy alapeset tárgyalásával. A már jól ismert, földrészleteket és helyrajzi számokat tartalmazó rajzunkkal fogunk dolgozni. Előbb a helyrajzi szám szöveghez kapcsoljuk hozzá a Telek adatbázis tábláját, majd ugyanezt az adatbázis táblát a földrészletekkel fogjuk összekapcsolni.
Az első példában csatoljuk a szokott módon a munkatérhez az állományt és végezzünk el egy hely szerinti kiválasztást az összes rajzi objektumra vonatkozóan. Majd csatoljuk a rajzhoz a Telek adatbázis táblát. Most következik a LPN (Link Path Name) létrehozása. Ehhez a Map menü Database almenüjéből válasszuk ki a Define Link Path Name (csatolási útvonalnév megadása) parancsot (2.18 ábra). A Database (adatbázis) és a Name (név) listákból válasszuk ki az adatbázis és a tábla nevét, majd a Link Path Name (csatolási útvonalnév) mezőbe írjunk be egy egyedi nevet a csatolás azonosításához. Egy adatbázis táblát több, egymástól különböző módon csatolhatjuk a rajzunkhoz, ezen csatolásokat különbözteti meg egymástól az itt megadott név. A Key Selection (kulcs kiválasztása) területen az adatbázis tábla oszlopai közül jelöljük meg azt, amelyik a kulcsa lesz a kapcsolatnak. Fontos, hogy olyan oszlopot válasszunk, amelynek az értékei különböznek egymástól, hiszen csak így töltheti be a kulcs szerepét. Ha ezt egy oszlop nem teljesítené, akkor több oszlop is megadható, de ebben az esetben a rajzi objektumnak is ilyen összetett kulcs-értékkel kell rendelkeznie. Az OK gomb megnyomásával a csatolási útvonalnév létrejön, és megjelenik a munkatér intézőben illetve az adatbázis megtekintésekor a Link Path Name listájában.
Miután megadtuk az LPN-t, következhet a kapcsolat létrehozása az adatbázis tábla és a rajzi objektumok között.

2.18 ábra Csatolási útvonalnév megadása
Válasszuk ki a Map menü Database
almenüjéből a Generate Links (kapcsolat
generálása) parancsot (2.19 ábra). A Linkage
Type (kapcsolat típusa) területen a

2.19 ábra Csatolások automatikus létrehozása
Text (szöveg) opciót jelöljük be, a Data Links (adatkapcsolatok) területen pedig a Create ASE Links (ASE csatolások létrehozása) opciót. Ezzel a rajzi szövegeket kívánjuk összekapcsolni az adatbázis táblával. Az LPN listájából keressük ki az előző lépésben megadott csatolási útvonalnevet, ekkor a Key1 (kulcs1) területen megjelenik az adatbázis tábla kijelölt kulcs oszlopának a neve. Az ASE Link Validation (ASE csatolás ellenőrzése) területen a Link Must Exist (kapcsolatnak léteznie kell) opciót jelöljük be, amivel csak azokat a kapcsolatokat hozzuk létre, amelyek mind a két területen léteznek (a rajzban és az adatbázis táblában). Az OK gomb megnyomása után a megjelenő kérdésre az All (minden) választ adjuk, amivel az összes szöveg objektum kapcsolását kérjük a programtól.
Miután létrejött a kapcsolat, tekintsük meg ennek eredményét! Hívjuk be az adatbázis táblát és jelöljünk be rajta néhány olyan rekordot, amelyekhez kapcsolt rajzi objektumokat szeretnénk megtekinteni. A Data View (adatnézet) ablakban a Highlight (kiemelés) menüből válaszuk a Zoom Scale (zoom lépték) parancsot és adjunk meg a listából egy nagyítási értéket (2.20 ábra). A kijelölt objektumokat ilyen mértékben kinagyítva fogja a Map megjeleníteni a képernyőn. Ugyancsak a Highlight menüben jelöljük ki az Auto Zoom (automatikus zoom) opciót, ennek hatására a megtalált objektumokat automatikusan nagyítva jeleníti meg a program.

2.20 ábra
A Highlight menü Highlight Object (kiemelt objektumok) parancsának választása után a képernyőn megtekinthetjük azokat a szöveg objektumokat (szaggatott vonallal rajzolva), amelyeket az adatbázis táblában kiválasztottunk (2.21 ábra). A kapcsolat értelemszerűen fordítva is működik, ha a rajzon választunk ki szöveg elemeket, akkor a velük kapcsolatban álló rekordok az adatbázis táblában jelennek meg kiemelten (jelen esetben sárga színnel) (2.22 ábra). Amennyiben a kijelölésben bármelyik oldalon több elem is részt vett, akkor a nekik megfelelő elemeket egyenként is megtekinthetjük a Highlight menü megfelelő parancsaival.

2.21 ábra Adatbázis táblában kijelölt rekordok megjelenítése a rajzban

2.22 ábra A rajzban kijelölt rekordok megjelenítése az adatbázis táblában
A második példában az adatbázis táblát a földrészletek poligonjához szeretnénk hozzákapcsolni, hogy magukról a földrészletekről nyerhessünk információkat. Mivel a rajzi állományban a földrészletek határvonalait önálló vonal elemként hoztuk létre, az adatbázis kapcsolatot közvetlen módon nem tudjuk felépíteni. Ezért előbb a földrészletek határvonalát zárt vonalláncokká alakítjuk a korábban létrehozott Földrészletek topológia felhasználásával. Az így nyert objektumokkal a csatolás már elvégezhető. Az ehhez szükséges utasításokat tekintsük most át röviden.
A Map menü Map Tools (Map segédeszközök)
almenüjéből válasszuk ki a Create Closed
Polylines (zárt vonalláncok létrehozása)
parancsot (2.23 ábra). A

2.23 ábra Zárt vonallánc létrehozása topológiából
Name (név) mezőben adjuk meg az átalakítandó topológia nevét, a Create on Layer listából pedig válasszuk ki annak a rétegnek a nevét, amelyre a létrejövő vonalláncokat szeretnénk elhelyezni. Az OK gomb megnyomása után az átalakítás eredménye a 2.24 ábrán látható, a vonalláncok rétegének zöld a színe.

2.24 ábra Topológiai objektumok átalakítása zárt vonalláncokká
Most már rendelkezésünkre állnak az adatbázis tábla és a földrészletek közötti kapcsolat kiépítéséhez a zárt vonalláncok, így nincs akadálya a parancs végrehajtásának. Most a Map menü Database almenüjéből a Define Link Path Name paranccsal létrehozunk egy új csatolási útvonalnevet, majd ennek felhasználásával a Generate Link (kapcsolat generálása) parancs értelemszerű, az előzőektől kicsit eltérő használatával hozzuk létre a kívánt kapcsolatot (2.25 ábra).

2.25 ábra Adatbázis tábla kapcsolása zárt szöveg objektumon keresztül
Ezek után az előzőekben leírt módon hajthatjuk végre a lekérdezést az adatbázis tábla elemeinek elhelyezkedésére vonatkozóan, és amint az a 2.26 ábrán megfigyelhető, a keresett objektumok most a földrészletek határvonalaival lesznek azonosítható, ezeket láthatjuk a rajzon szaggatott vonallal (kiemelten) megjelenítve.

2.26 ábra Adatbázis tábla kijelölt rekordjainak megtekintése a rajzban
Miután a külső adatbázis táblánkat összekapcsoltuk a rajzi objektumokkal, az aktuális visszamentési halmaz összes objektumát a hozzájuk tartozó csatolásokkal együtt mentsük vissza a forrásrajzunkba. Ezt a Map menü Save Back (viszamentés) almenüjének Save to Source Drawings (visszamentés a forrásrajzokba) parancsával végezhetjük el. Ezt követően már lehetőségünk van arra, hogy az adatbázisban ún. SQL lekérdezéseket hajtsunk végre. Az SQL (Structured Querry Language - strukturált lekérdező nyelv) segítségével egyszerű és összetett lekérdezéseket hozhatunk létre az adatbázis tábla tetszőlegesen kiválasztott oszlopainak tartalma alapján. Ezek a lekérdezések a korábban már tárgyalt másik három típussal együtt vagy önmagukban is használhatók a megjelenítendő objektumok halmazának kiválasztására.
Az előző fejezetben létrehozott második csatolás felhasználásával válogassuk most ki azokat a földrészleteket, amelyeken - az adatbázis táblában tárolt adatok felhasználásával megállapíthatóan - a beépítettségi százalék értéke nagyobb, mint 30 %, és vegyük hozzá ehhez a lekérdezéshez a terület összes épületét. A lekérdezés adatainak megadásához válasszuk ki a Map menü Querry almenüjéből a Define Querry parancsot. A szokásos párbeszéd ablakban előbb állítsuk be a Property területen az épület réteg megjelenését, majd az SQL nyomógombbal hívjuk meg az SQL lekérdezés összeállításához a párbeszéd ablakot és a Condition (feltétel) területen állítsuk be a megfelelő értéket (2.27 ábra).

2.27 ábra SQL lekérdezés összeállítása
A lekérdezés végrehajtása után kapott eredményt a 2.28 ábrán tekinthetjük meg. Fontos megjegyezni, hogy SQL lekérdezést csak a forrásrajz alapján lehet szerkeszteni, ezért volt arra szükség, hogy az előzőekben a Save Back utasítást végrehajtsuk: ennek eredményeként kerültek be a szükséges adatok a forrásrajzba.

2.28 ábra SQL lekérdezés eredménye