MapInfo Pro og SQL Server - Uden opgaver
-
Upload
peter-horsboll-moller -
Category
Technology
-
view
187 -
download
5
Transcript of MapInfo Pro og SQL Server - Uden opgaver
![Page 1: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/1.jpg)
MapInfo Professional 12.0
SQL Server 2008R2 / 2012 (Express)
Peter Horsbøll Møller, Senior Systems Engineer
November 2013
![Page 2: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/2.jpg)
Dagsorden - 1
Opsætning af en spatial database så
den kan anvendes fra MapInfo
Professional 12.0
SQL Server 2008R2 / 2012 Express
Kan være enhver spatial database
Kan være MapInfo Pro 10.0 - 12.0
![Page 3: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/3.jpg)
Dagsorden - 2
Anvende en spatial database fra
MapInfo Professional 12.0
SQL Server 2008R2 / 2012 Express
Kan være enhver spatial database
Kan være MapInfo Pro 10.0 - 12.0
![Page 4: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/4.jpg)
Dagsorden - 3
• Vi kommer omkring:
– Oprettelse af databaser, login og brugere
– Oprettelser af tabeller
– Oprettelse af ODBC datakilder
– MapInfos kortkatalog
– Åbning af DBMS tabeller fra MapInfo Professional
– Upload af tabeller til SQL Server
– Editering af tabeller fra MapInfo Professional
– Oprettelse af views
– De spatiale objekter og funktioner i SQL Server
– Oprettelse af Triggers
– Anvendelse af MapBasic mod SQL Server
• Hvis I har konkrete emner, som I ønsker berørt, så giv mig et praj
![Page 5: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/5.jpg)
Forudsætninger
• MapInfo Professional 10, 10.5, 11.0, 11.5 eller 12.0.
– 12.0.2 er anbefalet
• MS SQL Server 2008 R2 eller 2012 Express with tools
– Kan hentes her:
2008: www.microsoft.com/en-us/download/details.aspx?id=23650
2012: www.microsoft.com/en-us/download/details.aspx?id=29062
– Vi skal bruge SQL Server Management Studio
– Brugerrettigheder til at oprette nye databaser, logins og brugere
• kræver enten et SA-login
• eller Administrative rettigheder lokalt på computeren
![Page 6: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/6.jpg)
Introduktion
• Navn og organisation
• Forudsætninger:
– Kendskab til MapInfo Professional
– Kendskab til databaser/SQL Server
– Kenskab til SQL
• Ønsker til denne workshop?
![Page 7: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/7.jpg)
DAG 1
![Page 8: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/8.jpg)
SQL Server Management Studio
![Page 9: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/9.jpg)
Log in på Management konsollen
• Windows Autentication eller ”enhver” SQL Server login
• Men vi har brug for visse rettigheder for at kunne oprette en database
![Page 10: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/10.jpg)
Søge efter en SQL Server instans
• Hvis du ikke kan se din SQL Server
Express instans i listen, kan det
være fordi din SQL Server Browser
service ikke kører på din compter
(eller den computer SQL Server er
installeret på)
• Gå til (Windows) Tjenester og start
SQL Server Browser tjenesten
• Vær opmærksom på at du evt. skal
aktivere tjenesten via Egenskaber
på tjenesten
![Page 11: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/11.jpg)
Server autentifikation
• Højreklik på database-serveren og vælg Properties
• Vælg Security
• Vælg SQL Server and Windows Authentication mode
![Page 12: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/12.jpg)
Oprette databaser, login og brugere
![Page 13: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/13.jpg)
Oprette en database
• Højreklik for at oprette en ny
– Option: ”Quoted Identifiers” sættes til ”On”
![Page 14: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/14.jpg)
Oprette et login og en bruger
• Højreklik for at oprette et nyt login (Security på serveren, ikke på
databasen
![Page 15: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/15.jpg)
Oprette et login og en bruger – General
• Login navn, Kodeord, Standard database
• Login kan også være brugerens Windows brugernavn
![Page 16: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/16.jpg)
Oprette et login og en bruger – Server Roles
• Angiv rolle(r) på database-serveren – ofte kun ”public”
• Læs mere: http://msdn.microsoft.com/en-us/library/ms188659.aspx
![Page 17: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/17.jpg)
Oprette et login og en bruger – User Mapping
• Tilknyt til en (ny) bruger i en database og vælg database rolle(r)
• Læs mere: http://msdn.microsoft.com/en-us/library/ms189121.aspx
![Page 18: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/18.jpg)
Oprette et login og en bruger - Status
• Muligt at ”slukke” for adgang på et senere tidspunkt
![Page 19: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/19.jpg)
Oprette schemas
![Page 20: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/20.jpg)
Hvad er et schema i SQL Server?
• Et schema i SQL Server er en måde at organisere bl.a sine tabeller
• Med schemaer kan man også nemt tildele rettigheder til en række
tabeller, nemlig ved at tildele rettigheder via schemaet i stedet for
direkte på tabellerne
• Schemaer kan være en anden måde at organisere data end via flere
databaser
• Når man tilgår databasen fra MapInfo Professional kan man øverst i
Åbn dialogboksen vælge hvilket schema, man ønsker at se. På denne
måde kan man begrænse det antal tabeller man ser i vinduet med
tabeller.
• OBS: Vær opmærksom på at der skal findes mindst én tabel i schemaet
for at man kan se det fra MapInfo Professional. Det gælder også hvis
man ønsker at bruge Gem kopi som til at gemme tabeller over i
schemaet
![Page 21: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/21.jpg)
Oprette et nyt schema
• Højreklik på mappen Schemas i mappen Security under den database,
du ønsker at oprette schemaet i
• Vælg New Schema...
• Angiv et navn og en ejer
• Sæt evt. også rettigheder
![Page 22: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/22.jpg)
Oprette tabeller
![Page 23: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/23.jpg)
Oprette tabeller
• Højreklik på folderen Tables under din database
• Vælg New Table…
![Page 24: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/24.jpg)
Oprette tabeller – tilføje kolonner
• Skriv navnet på kolonnen og vælg den passende kolonnetype for hver
kolonne. Overvej om man må indsætte NULL-værdier
![Page 25: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/25.jpg)
Oprette tabeller – Properties vinduet
• Mange indstillinger for en ny tabel kan også sætte via Properties
vinduet (Åbn det evt. ved at trykke på F4)
• Du kan her bl.a. sætte:
– Tabellens navn
– Tabellens schema
– Identity kolonnen
![Page 26: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/26.jpg)
Oprette tabeller – datatyper
• Præcise numeriske
– Bigint (MapInfo type: Float)
• -9.223.372.036.854.775.808 – 9.223.372.036.854.775.807
– Int (MapInfo type: Integer)
• -2.147.483.648 – 2.147.483.647
– SmallInt (MapInfo type: SmallInt)
• -32.768 – 32.767
– TinyInt (MapInfo type: SmallInt)
• 0 – 255
– Bit (MapInfo type: Logical)
• 1 or 0
– Decimal / numerical (MapInfo type: Decimal)
• -10^38 +1 – 10^38 –1
![Page 27: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/27.jpg)
Oprette tabeller – datatyper
• Tilnærmede numeriske værdier
– Float (MapInfo type: Float)
– Real (MapInfo type: Float)
• Dato og tid
– Datetime (MapInfo type: Datetime)
• Fra 1. januar 1753 til 31. december 9999 med en præcision på
trehundrededele sekund eller 3,33 milisekund
– Date (MapInfo type: Date)
• Fra 1. januar år 1 til 31. december år 9999
![Page 28: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/28.jpg)
Oprette tabeller – datatyper
• Tekster
– Char (MapInfo type: Char)
• Fastlængde ikke-Unicode data, max. 8.000 tegn
– VarChar (MapInfo type: Char)
• Variabellængde ikke-Unicode data, max. 8.000 tegn
– Text (MapInfo type: Char)
• Variabellængde ikke-Unicode data, max. 2.147.483.647 tegn
• Bemærk: Tekstkolonner større end 254 tegn vil være skrivebeskyttet, når
de åbnes i MapInfo Professional og de vil kun vise de første 254 tegn
![Page 29: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/29.jpg)
Oprette tabeller – datatyper
• Geografiske typer
– Geometry (MapInfo type: Object)
• Kræver at tabellen er registreret i kortkatalog for at MapInfo kan
”se” den, mere om dette senere
– Geography (MapInfo type: Object)
• Kræver at tabellen er registreret i kortkatalog for at MapInfo kan
”se” den, mere om dette senere
![Page 30: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/30.jpg)
Oprette tabeller – overvejelser
• Undgå unicode kolonnetyperne (nchar, nvarchar, ntext), da MapInfo
Professional ikke kan redigere disse
• Undgå at oprette tekst-kolonne større end 254 tegn, da MapInfo
Professional ikke kan redigere disse
• Overvej at navngiv din primære indeks kolonne MI_PRINX. MapInfo
Professional bruger nemlig dette som den primære indeks kolonne i
views.
• Overvej at anvende Identity kolonner i dine tabeller for den primære
indeks kolonne. Dette opdaterer automatisk værdien ved indsættelse af
nye poster (svarer til ”autonummer” i MS Access)
![Page 31: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/31.jpg)
Oprette tabeller – Primær nøgle
• Højreklik på kolonne som skal være den primære nøgle, vælg Set
Primary Key
![Page 32: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/32.jpg)
Oprette tabeller – Identity
• Automatisk
nummering
• Vælg kolonnen og sæt
Is Identity til yes
• Du kan angive
specifikke tilvækst
(increment) og
startværdi (seed)
![Page 33: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/33.jpg)
Gennemse data i tabeller
• Højreklik på den ønskede tabel og vælg
– enten Select Top 100 Rows
– eller Edit Top 200 Rows
• Værdier kan tilpasses via Tools > Options > SQL Server Object
Explorer
![Page 34: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/34.jpg)
Oprette tabeller - navngivning
• Overvej kun at anvende bogstaverne A – Z, numrene 0 – 9 og
understregning (_) ved navngivning af tabeller og kolonner
• SQL Server understøtter dog nationale tegn, mellemrum og andre
specialtegn.
• SQL Server har også en række ord, som man ikke må bruge som f.eks.
tabel- og kolonnenavne, f.eks. BY og PLAN. Se en komplet liste over
reserverede ord her:
– http://technet.microsoft.com/en-us/library/ms189822.aspx
• Skal tabellerne anvendes i MapInfo Professional anbefales det at holde
tabelnavnene under 31 tegn, da det er MapInfo’s begrænsning på tabel-
og kolonnenavne
• Bemærk også at kolonner til tabel- og kolonnenavne i kortkataloget er
begrænset til 32 tegn. Anvender I længere tabel-/kolonnenavne skal
disse ændres.
![Page 35: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/35.jpg)
Oprette tabeller – et par tips
• Du kan kopiere strukturen, eller dele heraf, fra en tabel til en anden ved
at:
– markere de kolonnenavne og -typer, du ønsker at kopiere, i Design
Mode.
– trykke på Ctrl+C for at kopiere dem
– Gå over i Design Mode for den anden tabel og tryk i det øverst
venstre felt
– tryk Ctrl+V for at indsætte de kopierede kolonner
• Du kan også skripte Create kommandoen for en tabel over i et ”Query”
vindue. Du kan så tilpasse denne kommando, f.eks. Tabelnavne, tilføje
flere kolonner og endelig udføre kommandoen. Dette vil oprette en ny
tabel med en struktur lig med – eller delvis lig med – den originale tabel.
• Hvis du ikke kan ændre kolonnetypen, skal du sikre dig at du har slået
dette fra: Prevent saving changes that require table re-creation – mere
om dette under Tips & Tricks på de sidste sider
![Page 36: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/36.jpg)
Oprette en ODBC-datakilde
Data
Data
![Page 37: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/37.jpg)
Oprette en datakilde
• Åbn Select Data Source. Kan tilgås fra Åbn
dialogboksen eller via Filer > Åbn DBMS-
tilslutning.
• Vælg datakildetype
– Filbaseret datakilde
– Maskindatakilde
• Klik på knappen Ny.../New…
• Vælg den ønskede drivertype/databasetype
• Angiv et navn eller filnavn
• Datakilden bliver nu oprettet
![Page 38: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/38.jpg)
Konfigurere en datakilde
• Afhængig af database/driver
MS Access
MS SQL Server
![Page 39: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/39.jpg)
Oprette en datakilde til SQL Server 2008/2012
• Åbn Select Data Source. Kan tilgås fra
Åbn dialogboksen eller via Filer > Åbn
DBMS-tilslutning.
• Vælg datakildetype
– Filbaseret datakilde
– Maskindatakilde
• Klik på knappen Ny.../New…
• Vælg Bruger- eller Systemdatakilde
• Vælg drivertype/databasetype:
– SQL Server Native Client 10.0 (2008)
– SQL Server Native Client 11.0 (2012)
• Datakilden bliver nu oprettet
![Page 40: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/40.jpg)
Konfiguration af SQL Server 2008 datakilde
• Indtast navn, beskrivelse og server
• Vælg logintype (ofte Windows
Authentication) og indtast brugernavn
og kodeord, hvis du valgte SQL Server
Authentication
• Angiv standard database – altid!
• Brug ”ANSI Quoted Identifiers”
• Andre indstillinger
• Afprøv datakilden
![Page 41: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/41.jpg)
Åbne en DBMS-tilslutning
• Kan gøres via Filer > Åbn, Åbn DBMS-
tilslutning eller via Filer > Åbn DBMS-
tilslutning
• Når du har valgt tilslutningn og skal
indtaste dine login-informationer i SQL
Server Login dialogboksen, kan du også
vælge en anden database
• Klik på knappen Options >> for at se flere
indstillinger
• Vælg en anden database hvis du ønsker
det
![Page 42: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/42.jpg)
ODBC-datakilder på 64 bit operativsystem
• Tilgår du Datakilder via kontrolpanelet: Administrative værktøjer >
Datakilder (ODBC) kan du på et 64 bit operativsystem komme til at se
på 64bit datakilder
• MapInfo Professional 12.0 er et 32 bit program og anvender derfor også
32 bit datakilder.
• Højreklik på ”Datakilder (ODBC)” og vælg
Egenskaber, så får du denne dialogboks
• Target/Destination bestemmer om du ser 32
bit eller 64 bit datakilder:
• 32 bit:
• %windir%\system32\odbcad32.exe
• 64 bit:
• %windir%\SysWoW64\odbcad32.exe
• Læs mere:
• http://support.microsoft.com/kb/942976
![Page 43: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/43.jpg)
MARS
• Multiple Active Result Sets (MARS) – flere aktive resultatsæt
• Understøttet af
– MapInfo Professional 10.5.2 og nyere
– SQLServer 2005, 2008 og 2012
• MapInfo Professional 10.5.2 og nyere (den danske version dog først fra
v11.0) tilføjer automatisk denne indstillinger til tilslutningn:
– “MARS Connection=true”
• Forbedret performance ved åbning af en tabel, især for Direkte med
Cache. Adgangen kan være 5-10 gange hurtigere.
• Det er ikke nemt at tilføje denne indstillinger til en ODBC-datakilde, da
forskellige programmer kan bruge den samme datakilde og ikke alle
programmer understøtter MARS.
• Du kan dog tilføje denne indstilling via Registreringsdatabasen eller fil-
datakilden, se næste side
![Page 44: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/44.jpg)
MARS på datakilden
• Anvender du en dansk udgave af MapInfo Professional 10.5.2 kan med
fordel aktivere MARS direkte på datakilden
• I en filbaseret datakilde åbnes datakilden i en tekstfil og linjen
”MARS_Connection=Yes” tilføjes
• I en maskin-datakilde tilføjes nøglen
”MARS_Connection” af typen
Streng/Tekst til datakilden via
regedit. Nøglens værdi sættes til
”Yes”
• OBS: Brug ikke denne
fremgangsmåde hvis
andre programmer
anvender samme
datakilde
![Page 45: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/45.jpg)
MapInfo Pro: DBMS-grundindstillinger
• Åbn tilslutning under opstart
• Tabel-projektionen
anvendes også når du gør
en DBMS-tabel
kortlægningsklar
• Standard placering af eksterne tabeller
![Page 46: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/46.jpg)
MapInfo’s kortkatalog: MapInfo_MapCatalog
![Page 47: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/47.jpg)
Kortkataloget
• Kortkataloget (MapInfo.MapInfo_MapCatalog) beskriver geografiske
tabeller i en database med værdier som:
– Type af spatial tabel, for eksempel XY, SpatialWare, Oracle, SQL
Server, PostgreSQL/PostGIS, mm.
– Koordinatsystem
– Dataafgrænsninger
– Symbol, standard og rækkevis
– Standardvisning
• Kortkatalog skal findes én gang i en
database med geografiske data, som
skal tilgås fra MapInfo Professional
![Page 48: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/48.jpg)
Kortkatalog – Spatialtype
• Dataopbevaring/database
– 1 : MapInfo Code, XY med MapInfo-indeks( 3 kolonner)
– 4 : XY gemt i to kolonner
– 13: Oracle Spatial
– 14: MapInfo SpatialWare for MS SQL Server
– 17: SQL Server 2008 Geometry
– 18: SQL Server 2008 Geography
– 19: PostgreSQL/PostGIS
• Objekttyper
– .0: Kun punkter
– .1: Kun linjer/polylinjer
– .2: Kun regioner/polygoner
– .3: Alle objekttyper
![Page 49: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/49.jpg)
Oprette kortkataloget
• Du kan også oprette kortkataloget
– Med EasyLoader (MapBasic værktøj)
– Med DBMS Catalog (MapBasic værktøj)
– direkte i databasen, manuelt via brugerfladen
– direkte i databasen, via SQL
• Brugeren der opretter kortkataloget har brug for en ”sysadmin”
serverrolle.
• Hvis du opretter kortkataloget med EasyLoader skal du sikre dig at alle
tilslutninger til databasen er lukket i MapInfo Professional. Ellers kan du
risikere at have problemer med rækkevis-stil, når du senere vil gøre en
DBMS-tabel kortlægningsklar.
![Page 50: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/50.jpg)
Oprette kortkataloget – EasyLoader
• Start EasyLoader fra Værktøjsstyringen
• Kør EasyLoader fra Værktøjsmenuen
• Åbn en tilslutning til databasen via ODBC-
knappen. Du skal have DBA-rettigheder
• Tryk på Kortkatalog-knappen for at
oprette kortkataloget
• Du skulle nu gerne få at vide at
kortkataloget er blevet oprettet
• Hvis kortkataloget allerede findes, vil du
se en liste med tabeller allerede
registreret i kortkataloget. Du vil kunne
fjerne en eller flere af disse, hvis du
ønsker det
![Page 51: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/51.jpg)
Oprette kortkataloget – DBMS Katalog
• Kør værktøjet DBMS Katalog fra Værktøjer >
Værktøjsstyring.
• Vælg Værktøjer > DBMS Katalog > DBMS
Katalog og tryk på Opret katalog.
• Vælg datakilden, som peger på databasen,
hvos du ønsker at oprette kortkataloget – du
skal have DBA-rettigheder
• Kortkataloget vil nu findes i databasen
![Page 52: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/52.jpg)
Gøre en DBMS-tabel kortlægningsklar
![Page 53: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/53.jpg)
Gøre en DBMS-tabel kortlægningsklar
• Dette vil tilføje en post til kortkatalog, som beskriver hvorledes MapInfo
Professional skal vise den pågældende tabel i et kort
• Du skal angive hvor de geografiske data skal læses, hvilket
koordinatsystem, du ønsker at bruge og hvilken stil de geografiske data
skal vises med når de vises i MapInfo Professional
![Page 54: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/54.jpg)
Vælg database og tabel
• Vælg Tabel > Juster > Gør DBMS-tabel kortlægningsklar
• Du kan vælge en allerede åben DBMS-tilslutning via listen med Filtyper eller åbne en ny tilslutning via knappen Åbn DBMS-tilslutning i øverste højre hjørne af dialogboksen
• Vælg den tabel, som du ønsker at gøre kortlægningsklar og tryk på Åbn
• Bemærk at du kun ser de tabeller, som ikke allerede er registreret i kortkataloget
![Page 55: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/55.jpg)
Indstillinger for den kortlægningsklare tabel
• Angiv nu hvordan tabellen skal gøres kortlægningsklar:
– Type
• X og Y koordinater
• Oracle Spatial
• SQL Server Geometri
• SQL Server Geografi
• . . .
– Stil
• Rækkevis
– Symbol
– Koordinatsystem
• Kan eventuelt være skrivebeskyttet
– Tabelgrænser: Vælg data. For en tom tabel vælges koordinatsystem
• Tryk på OK
• Bemærk at vagmulighederne afhænger af den valgte tabel
• Vælg nu den næste tabel, som skal gøres kortlægningsklar
• Annuller dialogboksen Vælg DBMS-tabel, hvis du ikke ønsker at gøre flere tabeller kortlægningsklare.
![Page 56: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/56.jpg)
Gøre en DBMS-table kortlægningsklar - Notater
• Du skal ikke gøre dette hvis du har
– Uploadet tabellen med EasyLoader
– Gemt tabeller i databasen via Gem som i MapInfo Professional
• Du kan også udføre denne handling
– direkte in SQL Server
– Via MapBasic enten via et arbejdsområde, MapBasic-vinduet eller via en MapBasic applikation.
– Brug denne MapBasic kommando for at gøre en DBMS-tabel kortlægningsklar:
• Server ConnectionNumber Create Map . . .
![Page 57: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/57.jpg)
Fjerne en tabel fra kortkataloget
• Hvis du har behov for at fjerne en tabel fra kortkataloget, findes der en
række måder at gøre dette:
• Slet posten manuelt via SQL Server Management Studio
• eller
... brug EasyLoader til at
fjerne tabellen via
knappen Kortkatalog... brug DBMS Katalog til
at fjerne tabellen via
knappen Slet indgang
![Page 58: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/58.jpg)
Åbne DBMS-tabeller i MapInfo Professional
![Page 59: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/59.jpg)
Åbne en DBMS-tabel
• Vælg Filer > Åbn
• Tryk på Åbn DBMS-tilslutning
eller vælg den allerede åbne
tilslutning i listen med Filtyper
• Vælg de ønskede tabeller
• Tilpas eventuelt indstillingerne for
de enkelte tabeller
• Vælg metode for åbning
• Tryk på OK
![Page 60: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/60.jpg)
Åbne en DBMS-tabel før MapInfo Pro v12
• Vælg Filer > Åbn
• Tryk på Åbn DBMS-tilslutning
eller vælg den allerede åbne
tilslutning i listen med Filtyper
• Vælg den ønskede tabel og tryk
på Åbn.
![Page 61: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/61.jpg)
Åbne en DBMS-tabel
• Specificer:
– Kolonner
– Rækker
– Adgangstype
• Sammenkædet
• Direkte med Cache
• Direkte uden Cache
– Hvor tab-filen skal gemmes
på disken
![Page 62: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/62.jpg)
• Det er kun første gang at du åbner en DBMS-tabel at du skal angive
hvilke data du ønsker at åbne
• Efterfølgende kan du genåbne disse data ved at åbne tab-filen
• Tab- filen indeholder all nødvendig information
– Tabelstruktur
– tilslutningsinformation
– Kan også indeholde brugernavn og kodeord
• Hvis tabellen blev oprettet som “sammenkædet”, bør du overveje at
opdatere tabellen.
• Hvis tabellen blev oprettet som ”direkte”, vil MapInfo Professional læse
de nyeste data fra databasen
Genåbne en DBMS-tabel
![Page 63: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/63.jpg)
Værktøjet Tabelstyring
• Lader dig se tilslutningsstreng og forespørgsel fra en DBMS-tabel
• Disse gemmes som metadata i tab-filen
![Page 64: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/64.jpg)
Metadata sektion - Sammenkædet
!table
!version 400
!charset WindowsLatin1
Definition Table
Type LINKED Charset "WindowsLatin1"
Fields 4
MI_PRINX Integer ReadOnly ;
PLACENAME Char (50) ;
DESCRIPTION Char (250) ;
TYPE Char (20) ;
begin_metadata
"\DATALINK" = ""
"\DATALINK\ConnectionString" = "DSN=GIS2;Description=SQL Server 2008 GIS database;UID=AdminUser;APP=MapInfo Professional®;WSID=DKMP12948"
"\DATALINK\Query" = "select ""MI_PRINX"", ""PLACENAME"", ""DESCRIPTION"", ""TYPE"", ""OBJECT"" from ""GIS"".""dbo"".""PointsOfInterest"""
"\IsReadOnly" = "FALSE"
end_metadata
![Page 65: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/65.jpg)
Metadata sektion - Direkte
!table
!version 500
!charset WindowsLatin1
Definition Table
Type ODBC
begin_metadata
"\IsReadOnly" = "FALSE"
"\DATALINK" = ""
"\DATALINK\Query" = "Select * From ""GIS"".""dbo"".""PointsOfInterest"""
"\DATALINK\ConnectionString" = "DSN=GIS2;Description=SQL Server 2008 GIS database;UID=AdminUser;APP=MapInfo Professional®;WSID=DKMP12948"
"\DATALINK\ToolKit" = "ODBC"
"\CACHE" = "ON"
"\MBRSEARCH" = "ON"
end_metadata
![Page 66: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/66.jpg)
MapInfo Pro: Sammenkædet kontra Direkte
![Page 67: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/67.jpg)
Sammenkædet kontra Direkte - I
• Sammenkædet
– Data bliver kopieret til MapInfo tabellen, når tabellen oprettes og når
den opdateres
– Adgang til databasen er kun nødvendig, når du gemmer eller
opdaterer tabellen
-> At arbejde uden tilslutning og lange transaktioner er understøttet
– Hastigheden er lige så god som en normal MapInfo tabel, når først
data er hentet
– Data kan tilgås skrivebeskyttet hvis der ikke findes en primær nøgle
– Hvis du bruger en forespørgsel til kun at hente de nødvendige data,
vil forbedre hastigheden ved download. Forespørgslen kan skabes
via Rækkefilter, kolonnefilte rog Ekspert dialogboksene
– Data hentes ned til samme placering som tab-filen
– Duplikerede data
![Page 68: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/68.jpg)
Sammenkædet kontra Direkte - II
• Direkte med og uden cache
– Åbning er tabellerne første gang kan være hurtigere end
sammenkædet – afhængig af zoomniveaue i kortvinduet
– En “vis hele lager” eller zoom ud til hele visningen vil hente alle
poster fra tabellen
– Data skal have en primær nøgle
– Du skal altid have en åben tilslutning til databasen
![Page 69: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/69.jpg)
Sammenkædet kontra Direkte - III
• Direkte uden cache
– MapInfo Professional læser “altid” direkte fra databasen
– Ethvert optegning, gennemse eller udvælgelse kan have en negativ
effekt på performance
– Data genlæses fra database-serveren ved et hvert opslag
![Page 70: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/70.jpg)
Sammenkædet kontra Direkte – IV
• Direkte med cache
– Anvender en midlertidig cache
• 9.5.0 og tidligere:
– Tabel i hukommelsen, store tabeller kan fejle eller være
langsomme
– Cache gælder kun for et kortudsnit. Hvis du zoomer/panorerer
udenfor det forrige kortudsnit, læses data fra databasen igen
• 9.5.1 og nyere:
– MapInfo tabel gemt i en temporær fil
– Cachen er progressiv, data bevares i cachen i den aktuelle
session og cachen vokser løbende
– Data gemmes i cachen efterhånden som data indlæses fra
databasen. Dermed vil efterfølgende adgang til de samme data blive
hurtigere
– Cachen nulstilles når tabellen lukkes
![Page 71: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/71.jpg)
Sammenkædet kontra Direkte – Konklusioner?
• Brug kun “direkte uden cache” når
– Data ændres hvert minut eller hurtigere
• Brug ”direkte med cache” når
– Tabellen er meget stor og du ikke kan filtrere via en forspørgsel
– Dine data ændres løbende, f.eks. dagligt
• Bruge sammenkædet når
– Dine data er statiske og kun ændres en gang hver uge/måned/år
– Performance er vigtig
– Du skal laver større analyser på dine data, f.eks. SQL-forespørgsler
![Page 72: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/72.jpg)
Linked kontra Live – Konklusioner?
• Hvis du har en meget lille datamængde i din tabel, spiller det næppe
den store roller om du anvender direkte eller sammenkædet
• Med ”direkte” tabeller sikrer du dig at brugerne ”logger på” for at tilgå
data.
• Hvis du anvender ”direkte” tabeller, anbefaler vi at du tilgår dine tabeller
via et arbejdsområde med zoomniveauer, som forhindrer at unødvendig
data hentes
• Understøttelse af MARS har forbedret anvendelse af Direkte med
Cache
![Page 73: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/73.jpg)
Lidt snak om performance, baggrund
• MapInfo Professional 11.0.3 kører på den lokale computer
• SQL Server 2008 Express kører på den lokale computer
• 17 tabeller i en SQL Server database, 250 MB i tab-filer
• 5 tabeller med punkter
– mellem 23.000 og 480.000 punkter pr. tabel, totalt 759.100 punkter
• 4 tabeller med polylinjer
– mellem 800 og 12.500 polylinjer pr tabel, totalt 48.100 polylinjer
– mellem 23.400 og 480.700 knuder pr tabel, totalt 653.900 knuder
• 8 tabeller med regioner
– mellem 1 og 179.800 regioner pr tabel, totalt 238.000 regioner
– mellem 10.900 og 1.303.800 knuder pr tabel, totalt 2.147.500 knuder
![Page 74: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/74.jpg)
Lidt snak om performance, nogle tal
• Hente data fra alle tabeller ned i sammenkædede tabeller i et
kortvindue:
– 38 sekunder
• Hente data fra alle tabeller ned i direkte tabeller med cache i et
kortvindue uden zoomniveauer:
– Zoom: 500 m: 4 sekunder
– Zoom: 1000 m: 5 sekunder
– Zoom: 2500 m: 12 sekunder
– Zoom: 5000 m: 37 sekunder
• Åbne alle tabeller via et arbejdsområde med zoomniveauer:
– Sammenkædet: 0-1 sekund, + 1-2 sekunder til optegning af kort
– Direkte med cache: 1-2 sekund + 2-4 sekunder til optegning af kort
![Page 75: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/75.jpg)
Opret ny tabel
![Page 76: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/76.jpg)
Opret en ny tabel via MapInfo Professional
• Du kan oprette en tabel i SQL Server direkte
fra MapInfo Professional.
• MapInfo Professional tilføjer atuomatisk denne
nye tabel til kortkataloget i databasen.
• Vælg Filer > Ny...
• Vælg det ønskede i dialogboksen Ny tabel og
tryk på knappen Opret...
• Tilføj kolonner via dialogboksen Ny
tabelstruktur og tryk på knappen Opret...
![Page 77: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/77.jpg)
Opret en ny tabel via MapInfo Professional
• Vælg datakilden i listen Gem som
type eller åbn en ny tilslutning via
knappen Åbn DBMS-tilslutning
• Indtast nu et navn på din nye tabel
i databasen og sikre dig at det
korrekte schema er valgt
• Tryk på knappen Gem for at
gemme tabellen
![Page 78: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/78.jpg)
Opret en ny tabel via MapInfo Professional
• Nu skal du angive hvorledes denne
database-tabel skal åbnes i MapInfo
Professional
• Og angive om MapInfo Professional skal
oprette en primær indekskolonne og hvad
navnet skal være på denne
• Og hvordan de geografiske data skal
gemmes
• Og hvordan stilen skal håndteres
• Tryk på OK for at oprette og åbne denne
nye tabel i MapInfo Professional
![Page 79: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/79.jpg)
DAG 2
![Page 80: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/80.jpg)
Forespørgsler ved åbning af DBMS-tabeller
![Page 81: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/81.jpg)
Forespørgsler – Hvornår udføres de?
• Sammenkædet
– Forespørgslen udføres når
• tabellen åbnes første gang
• tabellen opdateres
• Direkte med cache
– Forespørgslen udføres når
• Tabellen tilføjes til et kort (eller et listevindue)
• Du zoomer eller panorerer i kortet
• Direkte uden cache
– Forespørgslen udføres når
• Tabellen tilføjes til et kort (eller et listevindue)
• Du zoomer eller panorerer i kortet
• Du klikker i kortet med vælg-værktøjet
• Du klikker i kortet med info-værktøjet
• …
![Page 82: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/82.jpg)
Forespørgsler – Rækkefiltrering
• Du kan angive hvilke poster, du ønsker at hente fra databasen
• Ved hjælp af attributter
• Ved hjælp af geografi
• Værdien af Current_Mapper og Selection er statiske og opdateres ikke
med nye værdier, når tabellen opdateres.
“Selection” er kun tilgængelig hvis der er
en aktiv udvælgelse
“Current_Mapper” er kun tilgængelig hvis
der er et kort aktivt
“Object” er kun tilgængelig for
kortlægningsklare tabeller
“Like” og “not like” er kun tilgængelige for
tekst-kolonner
Brug ikke ”” omkring tekstværdien!
![Page 83: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/83.jpg)
Forespørgsler - Ekspert
• Skriv dine egne SQL-udtryk
• Syntaksen afhænger af SQL dialekten i databasen
• MapInfo Professional vil “oversætte” nogle specifikke udtryk når
forespørgslen sendes til databasen:
– Object
– Within
– Selection
– Current_Mapper
– …
• Du kan gemme og indlæse forespørgsler via de to knapper på højre
side i dialogboksen
![Page 84: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/84.jpg)
Forespørge på datoer via Eksport-dialogboksen
• Du kan f.eks. anvende ekspert-dialogboksen til at forespørge på datoer
• Brug følgende udtryk til at konvertere en tekst til en dato:
– Convert(date, ‘ddmmåååå’, 112), hvor ”ddmmåååå” erstattes af den
ønskede dato
![Page 85: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/85.jpg)
Metadata for geografisk forespørgsel
!table
!version 650
!charset WindowsLatin1
Definition Table
Type LINKED Charset "WindowsLatin1"
Fields 3
MI_PRINX Integer ReadOnly ;
NAVN Char (50) ;
TYPE Char (50) ;
begin_metadata
"\IsReadOnly" = "FALSE“
"\DATALINK" = ""
"\DATALINK\ConnectionString" = "DSN=GIS;MARS_Connection=Yes"
"\DATALINK\Query" = "select ""MI_PRINX"", ""NAVN"", ""TYPE"", ""OBJECT"" from
""GIS"".""dbo"".""POI"" where (OBJECT within Rectangle(
628163.45078508,6112409.85175394,720526.19639343,6186305.28363101))"
"\DATALINK\SpatialObj" = "ST_Spatial(HG_Box(ST_Point(628163.451003735300,
6186305.285449981700),ST_Point(720526.200186016970,6112409.856650807900))
,ST_Point(674344.821471954000,6149357.566051412400))"
end_metadata
![Page 86: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/86.jpg)
Uploade tabeller til SQL Server
![Page 87: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/87.jpg)
EasyLoader
EasyLoader …
• … leveres med MapInfo Professional. Programmet kan også hentes på
vores hjemmeside
• … er et selvstændigt program, som kan køres udenfor MapInfo
Professional
• … er et Windows-program, men kan forbinde sig til databaser, der kører
på andre operativsystemer
• … kan køres i batch-mode fra
– kommandoprompt
– Bat-fil
– program
![Page 88: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/88.jpg)
Uploade eksisterende data med EasyLoader
• EasyLoader lader dig uploade eksisterende data til en database
– Oracle Locator/Spatial
– MapInfo SpatialWare
– SQL Server2008 Spatial
– PostgreSQL/PostGIS
– MS Access, XY-koordinater
• Vælg en eller flere tabeller, der skal uploades
• Angiv hvorledes de skal uploades
• Kan oprette kortkataloget
• Kan fjerne tabeller fra kortkataloget
• Kortkataloget opdateres
![Page 89: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/89.jpg)
EasyLoader indstillinger
• Indstillinger
– Geometri kontra Geografi
– Schema
– Giv “public” adgang til tabellerne
• OBS: Det giver ”public”
skriverettigheder til tabellen
– Opret geografisk indeks i databasen
– Opret ID kolonne som Identity
– Konverter Dato og Tid koloner til
DatoTid
– Angiv rækkevis stil
– Opret indeks på andre kolonner
![Page 90: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/90.jpg)
Tabelnavne og database-tabelnavneMapInfo tabeller
• Adresser
• Bygninger
• Byflade
• Vejmidter
• Kommunegrænsen
• Matrikler
• Kommunale_grunde
Database-tabelnavne
→ Adresser
→ Bygninger
→ Byflader
→ Vejmidter
→ Kommunegraenser
→ Matrikler
→ Kommunale_Grunde
![Page 91: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/91.jpg)
EasyLoader kommandolinje: A - F
• /A Tilføj alle tabeller til samme servertabel– EasyLoader.exe /A
• /B Schemanavn– EasyLoader.exe /B GIS
• /C Opret indeks for alle lokalt indekserede kolonner– EasyLoader.exe /C
• /D Mappe til lokale MapInfo tabeller til åbning af data fra databasen– EasyLoader.exe /D C:\Tables
• /E Eksklusiv bruger af tabellen– EasyLoader.exe /E
• /F Navn på logfil– EasyLoader.exe /F ez_log.log
![Page 92: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/92.jpg)
EasyLoader kommandolinje: G - O
• /G Giv “public” adgang til tabeller– EasyLoader.exe /G
• /I Opret IKKE geografisk indeks– EasyLoader.exe /I
• /K Opret “Identity” kolonne i SQL Server – EasyLoader.exe /K
• /L Filnavn på fil med liste over MapInfo tabeller– EasyLoader.exe /L C:\tabfiles.txt
Eksempel på indhold i filen:
D:\Data\Adresser.tab;Adresser
D:\Data\Bygninger.tab;Bygninger
• /M Geografi gemt som koordinater {MICODE | XY} – EasyLoader.exe /M XY
• /O Tilslutningsstreng til Oracle– EasyLoader.exe /O user_name/password@server_name
![Page 93: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/93.jpg)
EasyLoader kommandolinje: P - T
• /P { A | C | R } Tilføj (A) / Opret (C) / Erstat (R)– EasyLoader.exe /P C
• /Q Afslut EasyLoader efter udførsel– EasyLoader.exe /Q
• /R Overskriv tabel i databasen– EasyLoader.exe /R
• /S Tilslutningsstreng
– EasyLoader.exe /S DSN=MyDataSource;UID=AdminUser;PWD=Admin
– EasyLoader.exe /S UID=MyId;DATABASE=MyDB;HOST=MyServer;
SERVER=MyServer_tli;SERVICE=sqlexec;PROTOCOL=onsoctcp
• /T MapInfo tablenavn;Databasetabelnavn;Rækkeinterval
!! Brug ikke anførselstegn (””)
– EasyLoader.exe /T c:\data\Cities.tab;Cities;1,500
![Page 94: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/94.jpg)
EasyLoader kommandolinje: U - Z
• /U Opret IKKE et primært indeks– EasyLoader.exe /U
• /X Gem interval– EasyLoader.exe /X 1000
• /Y Navn på rækkevis stil kolonne– EasyLoader.exe /Y STYLE
– EasyLoader.exe /Y NO_STYLE
• /Z Brug altid Geometri
– EasyLoader.exe /Z
![Page 95: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/95.jpg)
Upload via Gem kopi som
• Fra MapInfo Professional can du gemme din tabel direkte over i en
database via Filer > Gem kopi som...
• Sørg for at vælge den ønskede database-tilslutning i Save as type listen
• Indtast navnet på servertabellen og vælg det ønskede schema
• Angiv efterfølgende navn på lokal tabel som peger på den nye tabel i
databasen (via Direkte tilslutning)
• Gem kopi som tilføjer automatisk:
– MI_PRINX
– MI_STYLE
![Page 96: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/96.jpg)
MapBasic syntaks for Save as
• MapBasic syntaksen for at gemme en tabel i en database ser således
ud:
Commit Table AV97_W
As "C:\DBMS\Buildings_Rotterdam.tab"
Type ODBC Connection 1
Table """dbo""."“Buildings_SAS"""
Type SQLServerSpatial Geometry
ConvertDateTime ON Interactive
• Nogle af parametrene er frivillige
![Page 97: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/97.jpg)
Dato-kolonner
• Du kan risikere denne fejl:
• Den kan skyldes at året er udenfor SQL Serveren interval for år i
DateTime-formatet (1753 til 9999)
• Du kan finde disse datoer med denne forespørgsel:Select * from MIN_TABEL
Where not Year(DATO_KOLONNE) between 1753 and 9999
into Selection
– hvor ”DATO_KOLONNE” er en Dato-kolonne i MapInfo
![Page 98: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/98.jpg)
Geografiske datafejl
• Der kan være problemer med visse objekter i MapInfo tabeller. Det kan
derfor være en god ide at køre nedenstående forespørgsler for at finde
eventuelle oplagte problemer:
• Finder flader med et areal under 1 kvmSelect * From MIN_TABEL
Where Str$(ObjectInfo(OBJ, 1)) In (”7”, ”8”, ”9”)
Into __FLADER
Select * From __FLADER
Where CartesianArea(OBJ, ”sq m”) < 1
Into __MULIGE_FEJL_FLADER
• Finder linære objekter med et længde under 1 mSelect * From MIN_TABEL
Where Str$(ObjectInfo(OBJ, 1)) In (”3”, ”4”)
Into __LINJER
Select * From __ LINJER
Where CartesianObjectLen(OBJ, ”m”) < 1
Into __MULIGE_FEJL_LINJER
![Page 99: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/99.jpg)
Redigere i tabeller fra SQL Server
![Page 100: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/100.jpg)
Redigere
• Tabellen i databasen skal have en primær indeks kolonne
– I et view skal denne kolonne hedde MI_PRINX
• Du kan redigere data med et hvert værktøj i MapInfo Professional
• Når du redigerer koordinater på en XY-koordinat table, bliver
koordinaterne opdateret i kolonnerne med X og Y-koordinater i
database-tabellen
• Hvis du ændrer stilen på en tabel, med rækkevis stil aktiveret, gemmes
stilen i kolonnen med stile, ofte navngivet ”MI_STYLE”. På andre
tabellen vil ændringer af stilen ikke blive fastholdt, når du opdaterer
tabellen
![Page 101: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/101.jpg)
Redigering – Flere samtidige brugere
• Hvis flere brugere skal redigere den samme tabel i SQL Server, skal de
ikke tilgå denne tabel via den samme fysiske fil på harddisken.
• Hvis de gør dette, vil kun en bruger kunne redigere tabellen ad gangen
– de øvrige brugere vil blive forhindret i at redigere så snart den første
brugere begynder at redigere.
• De skal altså tilgå databasen via hver deres lokale kopi af en MapInfo
tabel. Den kan være såvel sammenkædet som direkte
![Page 102: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/102.jpg)
Gemme
• Tryk på Gem tabel for at gemme ikke gemte ændringer i en
DBMS tabel
• Når ændringer gemmes til databasen, undersøger MapInfo om
posten der er blevet ændret, er blevet ændret i databasen efter
den blev læst derfra. Hvis det er tilfældet bliver du præsenteret
for en dialog, hvor du skal løse denne konflikt
• Gemme ændringer lokalt i (kun for sammenkædede tabeller)
kan gøres ved blot at lukke tabellen. MapInfo vil så spørge dig
hvad der skal ske med de ikke-gemte ændringer:
Gem ændringer i MapInfo-Tabel
– Gem ændringer på server
– Fortryd ændringer
![Page 103: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/103.jpg)
Løs konflikter i MapInfo Pro
• Hvis en tabel er blevet ændret i databasen, når du gemmer ændringer vil MapInfo præsenterer brugeren for en Løs konflikt dialogboks som vist
• Du kan her se hvilke data/kolonner, der er blevet ændret
• Du kan se den originale database version, den aktuelle MapInfo version og den aktuelle database version
• Du kan vælge hvad der skal beholdes og hvad der skal ændres –kolonnevis
• Du kan her se at kolonnen
PANDSTATUS er ændret og til hvad.
• Du kan også se at geografien (object)
er blevet ændret. Det er dog svært at
se på hvilken måde den er ændret
![Page 104: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/104.jpg)
Opdatere sammenkædede tabeller
![Page 105: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/105.jpg)
Opdatere
• Genindlæse data fra databasen kan gøres via Tabel > Juster > Opdater
DBMS-Tabel...
• Opdatere en DBMS-tabel
– Undersøger ændringer i databasen
– Anvender forespørgslen. Bemærk at disse betingelser er statiske.
– Hvis du har angivet en forespørgsel med brug af aktuelt kort eller
aktuel udvælgelse, vil den originale værdi igen blive anvendt. For at
at angive en ny værdi, f.eks. Et nyt kortudsnit, er du nødt til at
genåbne tabellen fra databasen og her angive den nye betingelse.
• MapBasic syntaks: Server Refresh name_of_table
![Page 106: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/106.jpg)
Opdatere DBMS-tabeller via et arbejdsområde
!Workspace
!Version 950
!Charset WindowsLatin1
Dim nConn As Integer
nConn = Server_Connect( "ODBC", "DSN=GIS;UID=EditUser;PWD=Edit" )
Print "Åbnet tilslutning som nr: " + nConn
Print "Åbner nu tabellerne..."
Open Table "D:\3. demo\dbms\Byflade.tab" Interactive
Map From Byflade
Print "Opdaterer nu DBMS-tabellerne..."
Server Refresh Byflade
Close Table Byflade
Print "Så er vi færdige"
Server nConn Disconnect
Undim nConn
![Page 107: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/107.jpg)
DAG 3
![Page 108: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/108.jpg)
MapInfo tabeller kontra tabeller i SQL Server
![Page 109: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/109.jpg)
MapInfo tabeller kontra tabeller i SQL Server
• Der er en række forskelle mellem MapInfos flade filer og opbevaring af
data i SQL Server
– Flere programmer kan tilgå data, ikke kun MapInfo software
– Flerbruger editering
– Alle fordelene ved relationelle databaser: relationer, views,
sikkerhed, triggers mm.
• Når data opbevares i MapInfos flade filer, skal en applikation håndtere
elementer som
– Tidsstempling ved ændring af data
– Holde styr på historiske versioner af data
– mm.
• Når data opbevares i databasen, kan databasen varetage disse ting for
alle programmer, der måtte tilgå data.
![Page 110: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/110.jpg)
Oprette views i SQL Server
![Page 111: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/111.jpg)
Hvad er et view?
• Et view kan betragtes som en måde at se på data
• Med et view kan man begrænse antallet af kolonner eller/og antallet af
poster, man ser.
• Med et view kan man også sammenstille flere kolonner til én kolonne.
F.eks. kan man sammensætte VEJNAVN, HUSNR og
HUSNR_BOGSTAV til en ADRESSE-kolonne
• Man kan også bruge views til at berige et tabel med data fra en anden
tabel, f.eks. overføre vejnavnet fra en vejnavnetabel til en tabel med
adresser. Dette gøres ofte via et join, en sammenkædning, af tabeller.
Du kan gøre dette enten på alfanmeriske eller geogratisk attributter.
• Et view kan også sammensætte flere tabeller til en
![Page 112: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/112.jpg)
Oprette views i SQL Server – New view, tables
• Højreklik på Views mappen og vælg New View…
• Vælg den eller de tabellern som skal indgå i viewet fra Add Table
dialogboksen
![Page 113: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/113.jpg)
Oprette views i SQL Server – joins
• Træk kolonnen fra den første tabel over til kolonnen fra den anden tabel
for at markere hvad de skal knytte de to tabeller sammen
• Bemærk at dette også skrives i SQL vinduet nederst
![Page 114: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/114.jpg)
Oprette views i SQL Server – kolonner
• Sæt nu flueben ved de kolonner, som du ønsker at medtage i viewet
• Du kan omdøbe kolonnerne (give dem et alias) via Alias feltet
![Page 115: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/115.jpg)
Oprette views i SQL Server - test
• Afprøv viewet via knappen Execute SQL, Ctrl + R eller F5
• Kontroller resultatet i listevinduet nederst
![Page 116: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/116.jpg)
Oprette views i SQL Server - gem
• Tryk nu på knappen Save eller Ctrl + S og navgiv dit view
• Overvej at ”prefixe” dit view med f.eks. ”view”, ”vw” eller lignende
![Page 117: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/117.jpg)
Oprette views i SQL Server – kortlægningsklar
• Hvis viewet skal vises i et kortvindue i MapInfo Professional, skal du
gøre det kortlægningsklart (registrere det i kortkataloget) via Tabel >
Juster > Gør DBMS-tabel kortlægningsklar
• Du kan også manuelt tilføje viewet til kortkataloget, hvis du kender alle
parametrene
• Du kan også kopiere posten med den grundlæggende tabel i
kortkatalog, indsætte denne igen og ændre tabelnavnet til navnet på
viewet
![Page 118: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/118.jpg)
Bedre performance med views
• Opretter du views hvor du også ønsker at man skal kunne finde
specifikke poster lynhurtigt, kan det være en fordel at indeksere dine
views
• For at kunne indeksere dine views skal de dog være koblet sammen
med de bagvedliggende data, det kalder man SCHEMABINDING
• Derudover skal du også lave et entydigt grupperet indeks (unique
clustered index) før du kan indeksere andre kolonner
• Nu kan du indeksere dine kolonner, f.eks. dit søgefelt med adresser
eller lignende.
• Læs mere her:
– http://en.wikipedia.org/wiki/Materialized_view
– http://msdn.microsoft.com/en-us/library/dd171921.aspx
– http://www.mssqltips.com/sqlservertip/1610/sql-server-schema-
binding-and-indexed-views/
![Page 119: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/119.jpg)
SCHEMABINDING
• Højreklik på dit view og vælg Scritp View As > Alter To > New Query
Window
• Tilføj ”WITH SCHEMABINDING” som vist nedenfor
• Tryk F5 eller vælg Execute-knappen for at ændre dit view
![Page 120: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/120.jpg)
Entydigt grupperet indeks
• Højreklik på Index mappen under dit view og vælg Create New....
• Angiv et navn, f.eks. ”PK_” + navnet på dit view
• Vælg din primære indeks kolonne via knappen Add
• Vælg Clustered og sæt flueben i Unique
• Tryk på OK
![Page 121: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/121.jpg)
Et view der sammensætter tabeller
Nedenstående skal køres fra et Query-vindue – ikke som et view:Create View [dbo].[viewSearch] WITH SCHEMABINDING As
Select VEJNAVN
+ ' ' + Cast(HUS_NR as VarChar) + HUSBOGSTAV
+ ', ' + Cast(POSTNR As VarChar)
+ ' ' + POSTDIST As SEARCHVALUE, MI_PRINX, SP_GEOMETRY
From dbo.ADRESSER
Union All
Select MAS_MATRNR + ' ' + ELAVNAVN As SEARCHVALUE
, (1000000 + MI_PRINX)
As MI_PRINX
, SP_GEOMETRY
From dbo.JORDSTYKKER
• Og tilføj den så til MapCatalog
![Page 122: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/122.jpg)
Introduktion til SQL Server's spatial objekter
![Page 123: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/123.jpg)
Geometry kontra Geography
• Geometry datatypen understøtter plane – eller projicerede - data. Geometry datatypen overholder standarden Open Geospatial Consortium (OGC) Simple Features for SQL Specification version 1.1.0.
• Derudover understøtter SQL Server Geography datatypen, somgemmer ellipsoidisk data, som f.eks. GPS længde/bredde koordinater.
• Her er en oversigt over de objekttyper, som Geometry-typen understøtter:
– Kun de blå er ”faktiske” objekter
– http://msdn.microsoft.com/en-us/library/bb964711.aspx
Punkt
Linje Region
Region Pline
Multi
Punkt
Samlingsobjekt
![Page 124: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/124.jpg)
SQL Server 2008 kontra 2012
• Understøttelse af cirkelbuer og tilhørende metoder
– STNumCurves
– STCurveN
– STCurveToLine
– CurveToLineWithTolerance
– BufferWithCurves
• Beregning af korteste linje mellem to geometrier
– ShortestLineTo
• Validering af geometrier
– Mere tolerant
– IsValidDetailed
• Præcision forbedret fra 27 til 48 bits
– færre afrundingsproblemer
• Mere automatisk oprettelse af spatiale indeks
![Page 125: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/125.jpg)
Geometry OGC metoder - 2008
• STArea
• STAsBinary
• STAsText
• STBoundary
• STBuffer
• STCentroid
• STContains
• STConvexHull
• STCrosses
• STDifference
• STDimension
• STDisjoint
• STDistance
• STEndpoint
• STEnvelope
• STEquals
• STExteriorRing
• STGeometryN
• STGeometryType
• STInteriorRingN
• STIntersection
• STIntersects
• STIsClosed
• STIsEmpty
• STIsRing
• STIsSimple
• STIsValid
• STLength
• STNumGeometries
• STNumInteriorRing
• STNumPoints
• STOverlaps
• STPointN
• STPointOnSurface
• STRelate
• STSrid
• STStartPoint
• STSymDifference
• STTouches
• STUnion
• STWithin
• STX
• STY
De er alle følsomme
overfor store/små
bogstaver!!!
![Page 126: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/126.jpg)
Geometry OGC metoder - 2012
• STArea
• STAsBinary
• STAsText
• STBoundary
• STBuffer
• STCentroid
• STContains
• STConvexHull
• STCrosses
• STCurveN
• STCurveToLine
• STDifference
• STDimension
• STDisjoint
• STDistance
• STEndpoint
• STEnvelope
• STEquals
• STExteriorRing
• STGeometryN
• STGeometryType
• STInteriorRingN
• STIntersection
• STIntersects
• STIsClosed
• STIsEmpty
• STIsRing
• STIsSimple
• STIsValid
• STLength
• STNumCurves
• STNumGeometries
• STNumInteriorRing
• STNumPoints
• STOverlaps
• STPointN
• STPointOnSurface
• STRelate
• STSrid
• STStartPoint
• STSymDifference
• STTouches
• STUnion
• STWithin
• STX
• STY
De er alle følsomme
overfor store/små
bogstaver!!!
![Page 127: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/127.jpg)
Invalide geometrier
• Finde poster med invalide geometrier
Select * From dbo.MYTABLE
Where SP_Geometry.STIsValid() = 0
• Korrigere poster med invalider geometrier
Update dbo.MYTABLE
Set SP_Geometry = SP_Geometry.MakeValid()
![Page 128: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/128.jpg)
Koordinatsystemer – EPSG-koder
• Finde EPSG-koder for en tabel, også kaldet SRID:select distinct SP_GEOMETRY.STSrid from dbo.MINTABEL
• Hvis den ikke er korrekt, kan man ændre den via denne kommando:Update dbo.MINTABEL Set SP_GEOMETRY.STSrid = 25832
• Dog bør man ikke ændre EPSG-koden til en for et helt andet
koordinatsystem. Der findes dog koordinatsystemer med forskellige
EPSG-koder, f.eks.:"UTM Zone 32 Euref89\p25832“
, 8, 115, 7, 9.0, 0, 0.9996, 500000, 0
"ETRS TM Zone 32, Northern Hemisphere (ETRS89)\p3044“
, 8, 115, 7, 9, 0, 0.9996, 500000, 0
• Problemet kan løses ved at kopiere MapInfoW.prj fra MapInfo Pro
mappen over i Tools mappen. Bør allerede være rettet i v11.5 og nyere
versioner
![Page 129: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/129.jpg)
Spatial SQL eksempler
Beregne areal af valide objekter
Select *, SP_GEOMETRY.STArea() As Area
From dbo.BYFLADER
Where SP_GEOMETRY.STIsValid() = 1
Beregne længder på valide objekter
Select *, SP_GEOMETRY.STLength() As Length
From dbo.VEJMIDTER
Where SP_GEOMETRY.STIsValid() = 1
![Page 130: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/130.jpg)
Spatial SQL eksempler
Find kommuner og deres naboer
Select t1.KOMNAVN, t2.KOMNAVN
From dbo.KOMMUNE t1, dbo.KOMMUNE t2
Where (t1.SP_GEOMETRY.STTouches(t2.SP_GEOMETRY) = 1
Or t1.SP_GEOMETRY.STIntersects(t2.SP_GEOMETRY) = 1)
And t1.MI_PRINX <> t2.MI_PRINX
Order By t1.KOMNAVN
![Page 131: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/131.jpg)
Spatial SQL eksempler
Tilføj et bynavn til netop de veje, der skærer en by
Select V.*, B.BYNAVN
FROM dbo.VEJMIDTER AS V
CROSS JOIN dbo.BYFLADE AS B
WHERE (V.SP_GEOMETRY.STIntersects(B.SP_GEOMETRY) = 1)
Tilføj et bynavn til de veje som skærer en by og NULL til de øvrige veje
Select V.*, B.BYNAVN
FROM dbo.VEJMIDTER AS V
LEFT OUTER JOIN dbo.BYFLADE AS B
On (V.SP_GEOMETRY.STIntersects(B.SP_GEOMETRY) = 1)
![Page 132: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/132.jpg)
Nogle join typer i SQL Server
• Inner JoinSELECT V.*, B.BYNAVN
FROM dbo.VEJMIDTER AS V
INNER JOIN dbo.BYFLADE AS B
ON (V.SP_GEOMETRY.STIntersects(B.SP_GEOMETRY) = 1)
• Left Outer JoinSELECT V.*, B.BYNAVN
FROM dbo.VEJMIDTER AS V
LEFT OUTER JOIN dbo.BYFLADE AS B
ON (V.SP_GEOMETRY.STIntersects(B.SP_GEOMETRY) = 1)
• Cross JoinSELECT V.*, B.BYNAVN
FROM dbo.VEJMIDTER AS V
CROSS JOIN dbo.BYFLADE AS B
WHERE (V.SP_GEOMETRY.STIntersects(B.SP_GEOMETRY) = 1)
![Page 133: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/133.jpg)
Inner Join
ID NAME LASTNAME
1 Peter 1
2 Paul 3
3 Mary 5
4 Ann 2
ID LASTNAME
1 Møller
2 Smith
3 McCartney
4 Probert
ID NAME LASTNAME
1 Peter Møller
2 Paul McCartney
4 Ann Smith
SELECT P.ID, P.NAME, L.LASTNAME
FROM dbo.PERSONS AS P
INNER JOIN dbo.LASTNAMES AS L
ON (P.LASTNAME = L.ID)
![Page 134: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/134.jpg)
Left Outer Join
ID NAME LASTNAME
1 Peter 1
2 Paul 3
3 Mary 5
4 Ann 2
ID LASTNAME
1 Møller
2 Smith
3 McCartney
4 Probert
ID NAME LASTNAME
1 Peter Møller
2 Paul McCartney
3 Mary <NULL>
4 Ann Smith
SELECT P.ID, P.NAME, L.LASTNAME
FROM dbo.PERSONS AS P
LEFT OUTER JOIN dbo.LASTNAMES AS L
ON (P.LASTNAME = L.ID)
![Page 135: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/135.jpg)
Cross Join
ID NAME LASTNAME
1 Peter 1
2 Paul 3
3 Mary 5
4 Ann 2
ID LASTNAME
1 Møller
2 Smith
3 McCartney
4 Probert
ID NAME LASTNAME
1 Peter Møller
2 Paul McCartney
4 Ann Smith
SELECT P.ID, P.NAME, L.LASTNAME
FROM dbo.PERSONS AS P
CROSS JOIN dbo.LASTNAMES AS L
WHERE (P.LASTNAME = L.ID)
Note: A Cross Join without condition will join every
record in the first table with every record in the
other table
![Page 136: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/136.jpg)
Triggers i SQL Server
![Page 137: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/137.jpg)
Hvad er Triggers?
• En trigger kan blive kaldt når der sker noget specielt i databasen
• De kan f.eks. kaldes når poster indsættes, opdateres eller slettes
• De kan også blive kaldt når en bruger logger på databasen
![Page 138: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/138.jpg)
Trigger indstillinger
• Højreklik på Databaseserveren > Properties, Advanced
– Allow triggers to fire others sættes til FALSE
• Højreklik på databasen > Properties, Options
– Recursive triggers Enabled sættes til FALSE
![Page 139: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/139.jpg)
Midlertidige tabeller i triggers
• SQL Server har to midlertidige tabeller, som kan anvendes i en trigger:
• inserted
– Indeholder de nye poster, der skal indsættes i, altså de ændringer
der er foretaget
– Findes ved indsættelse af nye poster og opdatering af poster
• deleted
– Indeholder posterne, der er blevet opdateret eller slettet, altså som
posterne så ud inden de blevet rettet/slettet
– Findes ved opdatering af poster og sletning af poster
![Page 140: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/140.jpg)
Blev en kolonne opdateret?
• Man kan også forespørge på om en given kolonne blev opdateret i
forbindelse med en opdatering.
• Det gøres med funktionen Update(), som returner TRUE for
kolonnenavne, som er blevet opdateret
If UPDATE(BYGNINGSTYPE)
Begin
If (exists(Select *
from inserted
where BYGNINGSTYPE = 'Bygning, stråtag'))
Begin
Insert into dbo.StraataekSikkerhedszone
(BYGN_ID, SP_GEOMETRY)
(Select MI_PRINX, SP_GEOMETRY.STBuffer(150)
From inserted
Where BYGNINGSTYPE = 'Bygning, stråtag')
End
End
![Page 141: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/141.jpg)
Oprette triggers
• Højreklik på Trigger mappen på den tabel, som du ønsker at oprette en
trigger til og vælg New trigger…
• Brug Query > Specify Values for Template Parameters eller
Ctrl+Shift+M for at indsætte nogle standardværdier i triggeren
• Nu skal du ”bare” tilpasse selve trigger udtrykket efter dine behov
• Du skal eksekvere (Execute) triggeren for rent faktisk at oprette den
![Page 142: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/142.jpg)
Trigger kommando
CREATE TRIGGER [schema_name.] trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF } { [INSERT] [,] [UPDATE] [,] [DELETE]}
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ]
[ ,...n ]
| EXTERNAL NAME <method specifier [ ; ] > }
![Page 143: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/143.jpg)
En trigger til alt
• Man kan lave en trigger, der håndterer såvel indsættelse, opdatering og
sletninger i en tabel.
• Man skal sørge for at denne trigger kan fastslå, hvilken hændelse den
kaldes for
If (not exists(SELECT * FROM inserted))
Begin -- records where deleted/der blev slette poster
End
Else
Begin
If exists(SELECT * FROM deleted)
Begin -- records where updated/der blev opdateret poster
End
Else
begin -- records were inserted/der blev indsat poster
End
End
![Page 144: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/144.jpg)
Opret en tidsstemplende trigger ved opdatering
CREATE TRIGGER dbo.trg_MY_TABLE_OnUpdate
ON dbo.MY_TABLE
AFTER UPDATE
AS
Begin
Update dbo.MY_TABLE
Set DATE_CHANGED = CURRENT_TIMESTAMP,
USER_CHANGED = SYSTEM_USER
Where MI_PRINX In (Select MI_PRINX From inserted);
End
GO
![Page 145: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/145.jpg)
Opret en tidsstemplende trigger ved indsættelse
CREATE TRIGGER dbo.trg_MY_TABLE_OnInsert
ON dbo. MY_TABLE
AFTER INSERT
AS
Begin
Update dbo.MY_TABLE
Set DATE_CREATED = CURRENT_TIMESTAMP,
USER_CREATED = SYSTEM_USER
Where MI_PRINX In (Select MI_PRINX From inserted);
End
GO
![Page 146: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/146.jpg)
Opret en tidsstemplende trigger ved indsættelse
og opdatering - I
CREATE TRIGGER dbo.trg_MY_TABLE_OnInsert
ON dbo. MY_TABLE
AFTER INSERT
AS
Begin
If exists(SELECT * FROM deleted)
Begin -- records where updated/der blev opdateret poster
Update dbo.MY_TABLE
Set DATE_CREATED = CURRENT_TIMESTAMP,
USER_CREATED = SYSTEM_USER
Where MI_PRINX In (Select MI_PRINX From inserted);
End
Else
...
![Page 147: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/147.jpg)
Opret en tidsstemplende trigger ved indsættelse
og opdatering - II
...
begin -- records were inserted/der blev indsat poster
Update dbo.MY_TABLE
Set DATE_CREATED = CURRENT_TIMESTAMP,
USER_CREATED = SYSTEM_USER
Where MI_PRINX In (Select MI_PRINX From inserted);
End
End
GO
![Page 148: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/148.jpg)
Opret en”historik” trigger
CREATE TRIGGER dbo.trgCopyToHistory
ON dbo.KOMMUNE
AFTER DELETE,UPDATE
AS
Begin
Insert Into dbo.KOMMUNE_historik
(OBJECTID, ID_NR, NAVN, OBJEKTTYPE, OBJEKTKODE
, ADM_KODE, MID_FEJL, PRODUCENT, MI_PRINX_ORIGINAL
, SP_GEOMETRY, MI_STYLE)
Select OBJECTID, ID_NR, NAVN, OBJEKTTYPE, OBJEKTKODE
, ADM_KODE, MID_FEJL, PRODUCENT, MI_PRINX
, SP_GEOMETRY, MI_STYLE
From deleted
End
Go
![Page 149: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/149.jpg)
Trigger, der opdaterer X og Y koordinater
• Create TRIGGER [dbo].[trg_MYTABLE_OnUpdate]
ON [dbo].[MYTABLE]
AFTER INSERT, UPDATE
AS
BEGIN
UPDATE DBO.MYTABLE
SET X = SP_GEOMETRY.STX,
Y = SP_GEOMETRY.STY
WHERE MI_PRINX IN (SELECT MI_PRINX FROM inserted)
END
![Page 150: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/150.jpg)
Trigger der opretter stråtagssikkerhedszoner - I
Create TRIGGER dbo.trgBygningerStraataekt
ON dbo.Bygninger
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
If (not exists(SELECT * FROM inserted))
Begin -- records where deleted
-- vi sletter dem der blev slettet
Delete From dbo.StraataekSikkerhedszone
Where BYGN_ID In (Select MI_PRINX From deleted)
end
else
end...
![Page 151: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/151.jpg)
Trigger der opretter stråtagssikkerhedszoner - II
...
Begin
if exists(SELECT * FROM deleted)
begin -- records where updated
If UPDATE(BYGNINGSTYPE)
Begin
-- ændringer i bygningstype, vi håndterer ændringer til/fra
-- ‘Bygning, stråtag’ I kolonnen BYGNINGSTYPE
Delete From dbo.StraataekSikkerhedszone
Where BYGN_ID In
(Select MI_PRINX From deleted
where BYGNINGSTYPE = 'Bygning, stråtag')
Insert into dbo.StraataekSikkerhedszone
(BYGN_ID, MACRO_ITEM, SP_GEOMETRY)
(Select MI_PRINX, 1, SP_GEOMETRY.STBuffer(200)
From inserted
Where BYGNINGSTYPE = 'Bygning, stråtag')
End
else
...
![Page 152: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/152.jpg)
Trigger der opretter stråtagssikkerhedszoner - III
...
Begin
If UPDATE(SP_GEOMETRY)
Begin
-- opdatering af geometrien skal afspejles i zonen
Delete From dbo.StraataekSikkerhedszone
Where BYGN_ID In
(Select MI_PRINX From deleted
where BYGNINGSTYPE = 'Bygning, stråtag')
Insert into dbo.StraataekSikkerhedszone
(BYGN_ID, MACRO_ITEM, SP_GEOMETRY)
(Select MI_PRINX, 2, SP_GEOMETRY.STBuffer(200)
From inserted
Where BYGNINGSTYPE = 'Bygning, stråtag')
End
End
End
...
![Page 153: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/153.jpg)
Trigger der opretter stråtagssikkerhedszoner - IV
else
begin -- records were inserted
If (exists(Select * from inserted
where BYGNINGSTYPE = 'Bygning, stråtag'))
Begin
-- nye poster blev indsat I tabellen bygninger
-- vi opretter zoner for dem med stråtag
Insert into dbo.StraataekSikkerhedszone
(BYGN_ID, MACRO_ITEM, SP_GEOMETRY)
(Select MI_PRINX, 4, SP_GEOMETRY.STBuffer(200)
From inserted Where BYGNINGSTYPE = 'Bygning, stråtag')
End
End
END
GO
![Page 154: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/154.jpg)
Tilgå SQL Server via MapBasic
![Page 155: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/155.jpg)
Process
• Opret tilslutning
nConn = Server_Connect("ODBC", "DSN=GIS;UID=EditUser;PWD=Edit")
• Gør ”noget”Server Create Map
Server Create Style
Server Create Table
Server Link Table
Register Table
Server Refresh
Server Set Map
Server_Execute
Commit Table
…
• Luk tilslutningServer nConn Disconnect
![Page 156: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/156.jpg)
Server_Execute
• Du kan bruge Server_Execute funktionen til at sende SQL kommandoer
til udførsel i databasen
• Sikre dig at du har en tilslutning åben, her bruges tilslutning nr 1
Print Server_Execute(1, ”Drop table dbo.KOMMUNE”)
Print Server_Execute(1, ”Delete From MapInfo.MapInfo_MapCatalog
Where OWNERNAME = ’dbo’
and TABLENAME = ’KOMMUNE’”)
• OBS: Ovenstående skal stå på én linje pr. kommando
• Husk at erstatte ” og ’ i MapBasic –vinduet, hvís du kopieret
ovenstående fra en PowerPoint
![Page 157: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/157.jpg)
MapBasic applikationer: Find DBMS
• Find DBMS er et lille værktøj som illustrerer hvordan en søgning kan
gøres via kald til en spatial database
• Værktøjet søger i en foruddefineret tabel i databasen ved hjælp af
tilslutning 1. Det kunne ændres til en specifik datakilde.
• Med værktøjet kan du indtaste en værdi, du ønsker en søge efter. Når
du trykker på Enter sendes SQL forespørgslen til database og
matchende værdier returneres og vises i dialogboksen
• Når du klikker på en af værdierne, markeres den tilsvarende post i
kortet og der zoomes hen til posten
• Bemærk at du også skal have tabellen åben i et kortvindue.
• De forskellige navne er angivet i konfigurationsfilen: FIND DBMS.ini
![Page 158: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/158.jpg)
Find DBMS
![Page 159: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/159.jpg)
MapBasic applikationer: TableRefresh
Tanken er at man installerer MapInfo Pro på en server eller en anden
computer, som kører om natten. Derefter opretter man et job på
computeren, som starter applikationen hver nat, hver søndag nat eller
lignende. Programmet søger så efter tabeller i den angivne mappe og
opdaterer dem, der skal og kan opdateres.
Programmet styres af opsætningsfilen, som bestemmer:
• i hvilken mappe, der skal søges efter tabeller
• om der skal søges i undermapper
• om DBMS-tabeller skal opdateres
• om WFS-tabeller skal opdateres
![Page 160: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/160.jpg)
Tips
![Page 161: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/161.jpg)
Spørgsmål & svar
Q Når jeg åbner en DBMS-tabel, får jeg at vide at tabellen er skrivebeskyttet?
A Sikre dig at du har rettigheder til at ændre i tabellen i databasen og at
tabellen har et entydigt primært indeks – for views skal denne kolonne
hedde MI_PRINX
Q Jeg får ikke valget mellem Oracle Spatial og ODBC?
A Du har enten ikke installeret understøttelse for Oracle Spatial (OCI) eller
også har du ikke en Oracle klient installeret
Q Min DBMS-tabel kan ikke blive vist i et kortvindue?
A Tabellen er sikkert ikke blevet registreret i kortkataloget. Gør den
kortlægningsklar først
Q Jeg har åbnet en DBMS-tabel og gjort den kortlægningsklar, men jeg kan
stadig ikke tilføje den til et kortvindue?
A Du skal genåbne tabellen fra databasen for at få MapInfo Professional til
at læse kortlægningsinformationerne fra kortkataloget
![Page 162: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/162.jpg)
Spørgsmål & svar
Q Hvordan kan jeg se kolonnerne med koordinater i MapInfo Professional?
A Opret et view og tilføje disse kolonner to gange (en gang med et alias),
gør viewet kortlægningsklart og åbn så viewet i stedet for den
bagvedliggende tabel, se nærmere på næste side
Q Når jeg åbner min tabel kan jeg ikke redigere kortdataene. Jeg kan dog
redigere attributdataene?
A Dette problem kan skyldes at du har valgt en skrivebeskyttet kolonne til at
indeholde den rækkevis stil, for eksempel hvis kolonnen er breddere end
254 tegn
Q Jeg kan ikke uploade en tabel til databasen vha. Gem kopi som. Jeg har
slettet den gamle tabel i databasen?
A Tabellen findes måske allerede i kortkataloget. Du skal fjerne den fra
kortkataloget før du kan gemme den som.
![Page 163: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/163.jpg)
Spørgsmål & svar
Q Jeg har lige oprettet kortkataloget via EasyLoader, men nu kan jeg ikke
angive at min tabel skal anvende rækkevis stil – denne mulighed er
inaktiv. Jeg har undersøgt at jeg har kolonne af typen varchar(254).
Hva’ nu?
A Hvis du havde en tilslutning åben til databasen i MapInfo
Professional da du oprettede kortkataloget med EasyLoader, skal
du nu lukke alle tilslutningr til databasen for at få MapInfo
Professional til at genopfriske sit “syn” på kortkataloget
![Page 164: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/164.jpg)
Se koordinater i MapInfo Professional
• MapInfo “gemmer” kolonner med koordinater, når de oversættes til et
punkt
• For at få vist koordinaterne skal du oprette et view der
– Indeholder koordinaterne to gange
– Indeholder den primære indeks kolonne under navnet MI_PRINX
• Dette view kunne se således ud:
SELECT HOLE_ID, ID, LENGTH,
LOCATIONX, LOCATIONY, LOCATIONZ,
LOCATIONX As X, LOCATIONY As Y, ID As MI_PRINX
FROM dbo.DRILLHOLES
• Til sidst skal du gøre viewet kortlægningklart vha. kolonnerne X og Y
![Page 165: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/165.jpg)
SQL Server tips
• Tools > Options
– Fjern flueben for ”Prevent saving changes that require table re-
creation”.
– Det gør det f.eks. muligt at ændre en kolonne fra nvarchar til varchar
![Page 166: MapInfo Pro og SQL Server - Uden opgaver](https://reader034.fdocument.pub/reader034/viewer/2022042423/55ad81371a28abdc548b46a4/html5/thumbnails/166.jpg)
Spørgsmål ?
The Power of Insight
MapInfo Professional
Peter Horsbøll Møller, Senior Systems Engineer