Revision 257

View differences:

tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.mssqlserver.app</artifactId>
7
  <packaging>pom</packaging>
8
  <name>${project.artifactId}</name>
9
  <parent>
10
      <groupId>org.gvsig</groupId>
11
      <artifactId>org.gvsig.mssqlserver</artifactId>
12
      <version>1.0.45</version>
13
  </parent>
14

  
15
  <modules>
16
    <module>org.gvsig.mssqlserver.app.mainplugin</module>
17
  </modules>
18

  
19
</project>
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/buildNumber.properties
1
#Thu Oct 24 23:59:06 CEST 2019
2
buildNumber=47
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<assembly>
2
  <id>gvsig-plugin-package</id>
3
  <formats>
4
    <format>zip</format>
5
  </formats>
6
  <baseDirectory>${project.artifactId}</baseDirectory>
7
  <includeBaseDirectory>true</includeBaseDirectory>
8
  <files>
9
    <file>
10
      <source>target/${project.artifactId}-${project.version}.jar</source>
11
      <outputDirectory>lib</outputDirectory>
12
    </file>
13
    <file>
14
      <source>target/package.info</source>
15
    </file>
16
    <file>
17
      <source>src/main/resources-plugin/config.xml</source>
18
    </file>
19
  </files>
20
  <fileSets>
21
    <fileSet>
22
      <directory>src/main/resources-plugin</directory>
23
      <outputDirectory>.</outputDirectory>
24
    </fileSet>
25
  </fileSets>
26
  <dependencySets>
27

  
28
    <dependencySet>
29
      <useProjectArtifact>false</useProjectArtifact>
30
      <useTransitiveDependencies>false</useTransitiveDependencies>
31
      <outputDirectory>lib</outputDirectory>
32
      <includes>
33
        <include>org.gvsig:org.gvsig.mssqlserver.provider</include>
34
      </includes>
35
    </dependencySet>
36

  
37
    <dependencySet>
38
      <useProjectArtifact>false</useProjectArtifact>
39
      <useTransitiveDependencies>false</useTransitiveDependencies>
40
      <outputDirectory>lib</outputDirectory>
41
      <includes>
42
		<include>com.microsoft.sqlserver:sqlserver-jdbc</include>
43
		<include>commons-dbcp:commons-dbcp</include>
44
		<include>commons-collections:commons-collections</include>
45
		<include>commons-pool:commons-pool</include>
46
      </includes>
47
    </dependencySet>
48

  
49
  </dependencySets>
50

  
51
</assembly>
52

  
53

  
54

  
55

  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/src/main/java/org/gvsig/mssqlserver/MSSQLServerExtension.java
1

  
2
package org.gvsig.mssqlserver;
3

  
4
import org.gvsig.andami.IconThemeHelper;
5
import org.gvsig.andami.plugins.Extension;
6
import org.gvsig.fmap.mapcontext.MapContextLocator;
7
import org.gvsig.fmap.mapcontext.MapContextManager;
8

  
9

  
10
public class MSSQLServerExtension  extends Extension {
11

  
12
    @Override
13
    public void initialize() {
14
    }
15

  
16
    @Override
17
    public void postInitialize() {
18
        MapContextManager mapContextMgr = MapContextLocator.getMapContextManager();
19
        
20
        IconThemeHelper.registerIcon("layer", "layer-icon-mssqlserver", this);
21
        mapContextMgr.registerIconLayer("MSSQLServer", "layer-icon-mssqlserver");
22
    }
23
    
24
    @Override
25
    public void execute(String actionCommand) {
26
    }
27

  
28
    @Override
29
    public boolean isEnabled() {
30
        return false;
31
    }
32

  
33
    @Override
34
    public boolean isVisible() {
35
        return false;
36
    }
37
    
38
}
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/src/main/resources-plugin/readme_es.txt
1

  
2
Notas acerca de la implementacion del proveedor de MS SQLServer.
3
====================================================================
4

  
5
Software
6
----------
7

  
8
Las pruebas realizadas durante el desarrollo se han hecho sobre:
9

  
10
- Microsoft SQL Server Express 2014 (64-bit), versi?n 12.0.2000.8
11
- Microsoft Windows NT 6.3 (9600), plataforma NT x64
12

  
13
El acceso al servidor se realiza a traves de JDBC usando el driver:
14

  
15
- Microsoft JDBC Driver 6.0 for SQL Server, may 2016 (sqljdbc42.jar).
16

  
17
Configuraci?n
18
--------------
19

  
20
Las pruebas se han realizado usando la instancia por defecto "SQLEXPRESS".
21

  
22
Para poder acceder al servidor es necesario:
23

  
24
- Habilitar la conexion al servidor a traves de TCP/IP. Esto se activara
25
  desde:
26
  - Sql Server Configuration Manager
27
  - Configuracion de red de SQL Server
28
  - Protocolos de SQLEXPRESS
29
  - TCP/IP
30
   - General
31
     - Habilitado: Si
32
   - Direcciones IP
33
     - IP4
34
       - Activo: Si
35
       - Habilitado: Si
36

  
37
- Deberan estar "En ejecucion" los servicios de:
38
  - SQL Server (SQLEXPRESS)
39
  - SQL Server Browser.
40
    Este servicio es necesario para poder aceptar conexiones TCP/IP contra el
41
    servidor y por defecto, tras la instalacion de MS SQL Sever, no se iniciaba
42
    automaticamente en mi equipo.
43

  
44
- Durante todas las pruebas se ha utilizado "Autenticaci?n de SQL Server".
45
  Es posible que para otros tipos de autenticaci?n sea necesario incluir alguna
46
  otra libreria (como sqljdbc_auth.dll x64/x86).
47

  
48
Soporte espacial
49
-------------------
50

  
51
Siempre que se exporta a BBDD se utilizara el tipo "geometry" para crear los
52
campos de tipo geometria, y en general se usara siempre este tipo de datos.
53

  
54
Se ha implementado un soporte limitado para el tipo de datos "geography". Si una
55
tabla contiene un campo de este tipo se leera y gvSIG podra trabajar con el. Si
56
una tabla contiene mas de un campo de tipo geometria siendo estos de tipos distintos,
57
unos "geometry" y otros "geography", gvSIG puede dar problemas para acceder a estos,
58
especialmente al de tipo "geography".
59

  
60
Ahora mismo el tipo de geometria asociado a una columna de la BBDD es GEOMETRY,
61
es decir, no se sabe si es punto, linea o poligono.
62

  
63
Sistemas de referencia
64
------------------------
65

  
66
La lista de sistemas de referencia disponibles esta almacenada en la tabla
67
sys.spatial_reference_systems, y solo tiene definidas unos 390 sistemas
68
de referencia. Habria que averiguar cargar otros sistemas de referencia.
69

  
70
Valores por defecto
71
---------------------
72

  
73
Los datos de conexion por defecto son:
74

  
75
- Host: 127.0.0.1
76
- Instance: SQLEXPRESS
77
- Database: master
78
- Schema: dbo
79
- user: sa
80
- password: 123
81

  
82
Los valores instance, database, schema y user se corresponden con valores
83
validos para una instalacion por defecto de SQL Server.
84

  
85
Problemas conocidos
86
--------------------
87

  
88
- No se guardan los datos de la conexion entre sesiones de gvSIG.
89

  
90
- La herramienta "Selection by layer" no funciona.
91

  
92
- Si una capa de gvSIG declara un campo "double" con precision y size,
93
  al expportarlo a BBDD lo exporta como "DOUBLE PRECISION" en lugar de como
94
  "NUMERIC(size,precision)".
95

  
96
- No se estan creando indices sobre los campos al exportar a BBDD.
97

  
98
- En la exportacion a BBDD, en el paso que pide el nombre de la tabla,
99
  primero muestra como esquema "public" y cuando termina de leer las tablas
100
  de la BBDD para mostrarlas (tarda unos segundos) cambia de public a "dbo".
101
  Esto puede causar problemas si el usuario pulsa en siguiente antes de que se
102
  haya actualizado el esquema con el que se corresponde con la BBDD ya que
103
  intentaria crear la tabla en el esquema "public" y este no existe en SQLServer.
104

  
105
- Solo se ha implememtado soporte para geometrias 2D (no 3D, 2DM o 3DM).
106

  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/src/main/resources-plugin/mssqlserver-jdbc-driver-license60.txt
1
MICROSOFT SOFTWARE LICENSE TERMS
2

  
3
MICROSOFT JDBC DRIVER 6.0 FOR SQL SERVER
4

  
5
These license terms are an agreement between Microsoft Corporation (or based on where you 
6
live, one of its affiliates) and you. Please read them. They apply to the software 
7
named above, which includes the media on which you received it, if any. The terms also apply to 
8
any Microsoft
9

  
10
? updates,
11
? supplements,
12
? Internet-based services, and
13
? support services
14

  
15
for this software, unless other terms accompany those items. If so, those terms apply.
16

  
17
BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT 
18
ACCEPT THEM, DO NOT USE THE SOFTWARE.
19

  
20
If you comply with these license terms, you have the rights below.
21

  
22
1. INSTALLATION AND USE RIGHTS. 
23

  
24
a. Installation and Use.
25

  
26
i. You may install and use any number of copies of the software on your devices.
27

  
28
b. Third Party Programs. The software may include third party programs that Microsoft, 
29
not the third party, licenses to you under this agreement. Notices, if any, for the third 
30
party program are included for your information only.
31

  
32
2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
33

  
34
a. Distributable Code.
35

  
36
i.	Right to Use and Distribute. You are permitted to distribute the software in programs you 
37
develop if you comply with the terms below:
38

  
39
* You may copy and distribute the object code form of the software (?Distributable Code?) in 
40
programs you develop. You may not modify the software.
41
* You may permit distributors of your programs to copy and distribute the Distributable Code 
42
as part of those programs.
43
ii.	Distribution Requirements. For any Distributable Code you distribute, you must
44
* add significant primary functionality to it in your programs;
45
* require distributors and external end users to agree to terms that protect it at least as 
46
much as this agreement;
47
* display your valid copyright notice on your programs; and
48
* indemnify, defend, and hold harmless Microsoft from any claims, including attorneys? fees, 
49
related to the distribution or use of your programs.
50
iii.	Distribution Restrictions. You may not
51
* alter any copyright, trademark or patent notice in the Distributable Code;
52
* use Microsoft?s trademarks in your programs? names or in a way that suggests your programs 
53
come from or are endorsed by Microsoft;
54
* include Distributable Code in malicious, deceptive or unlawful programs; or
55
* modify or distribute the source code of any Distributable Code so that any part of it 
56
becomes subject to an Excluded License. An Excluded License is one that requires, as a 
57
condition of use, modification or distribution, that
58
* the code be disclosed or distributed in source code form; or
59
* others have the right to modify it.
60

  
61

  
62
3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you 
63
some rights to use the software. Microsoft reserves all other rights. Unless applicable law 
64
gives you more rights despite this limitation, you may use the software only as expressly 
65
permitted in this agreement. In doing so, you must comply with any technical limitations in 
66
the software that only allow you to use it in certain ways. You may not
67

  
68
? work around any technical limitations in the software;
69
? reverse engineer, decompile or disassemble the software, except and only to the extent 
70
that applicable law expressly permits, despite this limitation;
71
? make more copies of the software than specified in this agreement or allowed by 
72
applicable law, despite this limitation;
73
? publish the software for others to copy;
74
? rent, lease or lend the software;
75
? transfer the software or this agreement to any third party; or
76
? use the software for commercial software hosting services.
77

  
78
4. EXPORT RESTRICTIONS. The software is subject to United States export laws and 
79
regulations. You must comply with all domestic and international export laws and 
80
regulations that apply to the software. These laws include restrictions on destinations, end 
81
users and end use. For additional information, see www.microsoft.com/exporting.
82

  
83
5. SUPPORT SERVICES. Because this software is ?as is,? we may not provide support 
84
services for it.
85

  
86
6. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-
87
based services and support services that you use, are the entire agreement for the software 
88
and support services.
89

  
90
7. APPLICABLE LAW.
91

  
92
a. United States. If you acquired the software in the United States, Washington state law 
93
governs the interpretation of this agreement and applies to claims for breach of it, 
94
regardless of conflict of laws principles. The laws of the state where you live govern all 
95
other claims, including claims under state consumer protection laws, unfair competition 
96
laws, and in tort.
97

  
98
b. Outside the United States. If you acquired the software in any other country, the laws of 
99
that country apply.
100

  
101
8. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights 
102
under the laws of your country. You may also have rights with respect to the party from 
103
whom you acquired the software. This agreement does not change your rights under the laws 
104
of your country if the laws of your country do not permit it to do so.
105

  
106
9. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED ?AS-IS.? YOU 
107
BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS 
108
WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE 
109
ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS WHICH THIS 
110
AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER 
111
YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES 
112
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
113
INFRINGEMENT.
114

  
115
10. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN 
116
RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP 
117
TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING 
118
CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL 
119
DAMAGES.
120

  
121
This limitation applies to
122

  
123
? anything related to the software, services, content (including code) on third party Internet 
124
sites, or third party programs, and
125
? claims for breach of contract, breach of warranty, guarantee or condition, strict liability, 
126
negligence, or other tort to the extent permitted by applicable law.
127

  
128
It also applies even if Microsoft knew or should have known about the possibility of the 
129
damages. The above limitation or exclusion may not apply to you because your country may 
130
not allow the exclusion or limitation of incidental, consequential or other damages.
131

  
132
Please note: As this software is distributed in Quebec, Canada, some of the clauses in this 
133
agreement are provided below in French.
134

  
135
Remarque : Ce logiciel ?tant distribu? au Qu?bec, Canada, certaines des clauses dans ce 
136
contrat sont fournies ci-dessous en fran?ais.
137

  
138
EXON?RATION DE GARANTIE. Le logiciel vis? par une licence est offert ? tel quel ?. 
139
Toute utilisation de ce logiciel est ? votre seule risque et p?ril. Microsoft n?accorde aucune 
140
autre garantie expresse. Vous pouvez b?n?ficier de droits additionnels en vertu du droit local 
141
sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont 
142
permises par le droit locale, les garanties implicites de qualit? marchande, d?ad?quation ? un 
143
usage particulier et d?absence de contrefa?on sont exclues.
144

  
145
LIMITATION DES DOMMAGES-INT?R?TS ET EXCLUSION DE 
146
RESPONSABILIT? POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de 
147
ses fournisseurs une indemnisation en cas de dommages directs uniquement ? hauteur de 5,00 
148
$ US. Vous ne pouvez pr?tendre ? aucune indemnisation pour les autres dommages, y 
149
compris les dommages sp?ciaux, indirects ou accessoires et pertes de b?n?fices.
150

  
151
Cette limitation concerne :
152
? tout ce qui est reli? au logiciel, aux services ou au contenu (y compris le code) figurant 
153
sur des sites Internet tiers ou dans des programmes tiers ; et
154
? les r?clamations au titre de violation de contrat ou de garantie, ou au titre de 
155
responsabilit? stricte, de n?gligence ou d?une autre faute dans la limite autoris?e par la loi 
156
en vigueur.
157

  
158
Elle s?applique ?galement, m?me si Microsoft connaissait ou devrait conna?tre l??ventualit? 
159
d?un tel dommage. Si votre pays n?autorise pas l?exclusion ou la limitation de responsabilit? 
160
pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la 
161
limitation ou l?exclusion ci-dessus ne s?appliquera pas ? votre ?gard.
162

  
163
EFFET JURIDIQUE. Le pr?sent contrat d?crit certains droits juridiques. Vous pourriez avoir 
164
d?autres droits pr?vus par les lois de votre pays. Le pr?sent contrat ne modifie pas les droits 
165
que vous conf?rent les lois de votre pays si celles-ci ne le permettent pas.
166

  
167

  
168

  
169

  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/src/main/resources-plugin/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<plugin-config>
3
  <libraries library-dir="lib/"/>
4
  <depends plugin-name="org.gvsig.app.mainplugin"/>
5
  <resourceBundle name="text"/>
6
  <extensions>
7
     <extension class-name="org.gvsig.mssqlserver.MSSQLServerExtension" active="true"/>
8
  </extensions>    
9
</plugin-config>
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.app/org.gvsig.mssqlserver.app.mainplugin/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.mssqlserver.app.mainplugin</artifactId>
7
  <packaging>jar</packaging>
8
  <name>${project.artifactId}</name>
9
  <description>MS SQLServer support</description>
10

  
11
  <parent>
12
      <groupId>org.gvsig</groupId>
13
      <artifactId>org.gvsig.mssqlserver.app</artifactId>
14
      <version>1.0.45</version>
15
  </parent>
16

  
17
  <dependencies>
18
    <dependency>
19
        <groupId>org.gvsig</groupId>
20
        <artifactId>org.gvsig.tools.lib</artifactId>
21
        <scope>compile</scope>
22
    </dependency>
23
    <dependency>
24
        <groupId>org.gvsig</groupId>
25
        <artifactId>org.gvsig.andami</artifactId>
26
        <scope>compile</scope>
27
    </dependency>
28
    <dependency>
29
        <groupId>org.gvsig</groupId>
30
        <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
31
        <scope>compile</scope>
32
    </dependency>
33
    <dependency>
34
        <groupId>org.gvsig</groupId>
35
        <artifactId>org.gvsig.mssqlserver.provider</artifactId>
36
        <scope>compile</scope>
37
    </dependency>
38

  
39
    <dependency>
40
      <groupId>com.microsoft.sqlserver</groupId>
41
      <artifactId>sqlserver-jdbc</artifactId>
42
      <scope>runtime</scope>
43
    </dependency>
44
    <dependency>
45
      <groupId>commons-dbcp</groupId>
46
      <artifactId>commons-dbcp</artifactId>
47
      <scope>runtime</scope>
48
    </dependency>
49
    <dependency>
50
      <groupId>commons-collections</groupId>
51
      <artifactId>commons-collections</artifactId>
52
      <scope>runtime</scope>
53
    </dependency>
54
    <dependency>
55
      <groupId>commons-pool</groupId>
56
      <artifactId>commons-pool</artifactId>
57
      <scope>runtime</scope>
58
    </dependency>
59
  </dependencies>
60

  
61
    <properties>
62
        <!-- Package info property values -->
63
        <!-- Default values in org.gvsig.desktop -->
64
        <gvsig.package.info.name>Formats: MS SQLServer support</gvsig.package.info.name>
65
        <gvsig.package.info.state>testing</gvsig.package.info.state>
66
        <gvsig.package.info.official>true</gvsig.package.info.official>
67
        <gvsig.package.info.javaVM>j1_8</gvsig.package.info.javaVM>
68
        <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.3.0</gvsig.package.info.dependencies>
69
        <gvsig.package.info.categories>Formats,Vector,Database</gvsig.package.info.categories>
70
        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-mssqlserver/pool/</gvsig.package.info.poolURL>
71
    </properties>
72

  
73

  
74
</project>
0 75

  
tags/org.gvsig.mssqlserver-1.0.45/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
    <modelVersion>4.0.0</modelVersion>
6
    <artifactId>org.gvsig.mssqlserver</artifactId>
7
    <version>1.0.45</version>
8
    <packaging>pom</packaging>
9
    <name>${project.artifactId}</name>
10
    <description>MS SQLServer support fort DAL and gvSIG</description>
11
    <parent>
12
        <groupId>org.gvsig</groupId>
13
        <artifactId>org.gvsig.desktop</artifactId>
14
        <version>2.0.253</version>
15
    </parent>
16

  
17
    <url>https://devel.gvsig.org/redmine/projects/gvsig-mssqlserver</url>
18
    <scm>
19
        <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-mssqlserver/tags/org.gvsig.mssqlserver-1.0.45</connection>
20
        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-mssqlserver/tags/org.gvsig.mssqlserver-1.0.45</developerConnection>
21
        <url>https://devel.gvsig.org/redmine/projects/gvsig-mssqlserver/repository/show/tags/org.gvsig.mssqlserver-1.0.45</url>
22
    </scm>
23

  
24
    <repositories>
25
        <repository>
26
            <id>gvsig-public-http-repository</id>
27
            <name>gvSIG maven public HTTP repository</name>
28
            <url>http://devel.gvsig.org/m2repo/j2se</url>
29
            <releases>
30
                <enabled>true</enabled>
31
                <updatePolicy>daily</updatePolicy>
32
                <checksumPolicy>warn</checksumPolicy>
33
            </releases>
34
            <snapshots>
35
                <enabled>true</enabled>
36
                <updatePolicy>daily</updatePolicy>
37
                <checksumPolicy>warn</checksumPolicy>
38
            </snapshots>
39
        </repository>
40
    </repositories>
41

  
42

  
43
    <build>
44
        <plugins>
45
            <plugin>
46
                <groupId>org.apache.maven.plugins</groupId>
47
                <artifactId>maven-release-plugin</artifactId>
48
                <configuration>
49
                    <tagBase>https://devel.gvsig.org/svn/gvsig-mssqlserver/tags/</tagBase>
50
                    <goals>deploy</goals>
51
                </configuration>
52
            </plugin>                     
53
        </plugins>
54
    </build>
55

  
56

  
57
    <dependencyManagement>
58
        <dependencies>
59
            <dependency>
60
                <groupId>org.gvsig</groupId>
61
                <artifactId>org.gvsig.mssqlserver.provider</artifactId>
62
                <version>1.0.45</version>
63
            </dependency>
64
            <dependency>
65
                <groupId>org.gvsig</groupId>
66
                <artifactId>org.gvsig.mssqlserver.app.mainplugin</artifactId>
67
                <version>1.0.45</version>
68
            </dependency>
69
            <dependency>
70
                <groupId>com.microsoft.sqlserver</groupId>
71
                <artifactId>sqlserver-jdbc</artifactId>
72
                <version>6.0.0</version>
73
            </dependency>
74
        </dependencies>
75
    </dependencyManagement>
76
  
77
    <modules>
78
        <module>org.gvsig.mssqlserver.app</module>
79
        <module>org.gvsig.mssqlserver.provider</module>
80
    </modules>
81

  
82

  
83
</project>
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/resources/org/gvsig/fmap/dal/store/jdbc2/JDBC2Metadata.xml
1
<?xml version="1.0"?>
2
<!--
3

  
4
    gvSIG. Desktop Geographic Information System.
5

  
6
    Copyright (C) 2007-2013 gvSIG Association.
7

  
8
    This program is free software; you can redistribute it and/or
9
    modify it under the terms of the GNU General Public License
10
    as published by the Free Software Foundation; either version 3
11
    of the License, or (at your option) any later version.
12

  
13
    This program is distributed in the hope that it will be useful,
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
    GNU General Public License for more details.
17

  
18
    You should have received a copy of the GNU General Public License
19
    along with this program; if not, write to the Free Software
20
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
    MA  02110-1301, USA.
22

  
23
    For any additional information, do not hesitate to contact us
24
    at info AT gvsig.com, or visit our website www.gvsig.com.
25

  
26
-->
27
<definitions>
28
  <version>1.0.0</version>
29
  <classes>
30
    <class name="JDBC2" namespace="Metadata">
31
      <extends>
32
      	<class name="SpatialProvider" namespace="Metadata"/>
33
      </extends>
34
      <description>Metadata of a JDBC store</description>
35
      <fields>
36
      </fields>
37
    </class>
38

  
39
  </classes>
40
</definitions>  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/resources/org/gvsig/fmap/dal/store/jdbc2/JDBC2Parameters.xml
1
<?xml version="1.0"?>
2
<!--
3

  
4
    gvSIG. Desktop Geographic Information System.
5

  
6
    Copyright (C) 2007-2013 gvSIG Association.
7

  
8
    This program is free software; you can redistribute it and/or
9
    modify it under the terms of the GNU General Public License
10
    as published by the Free Software Foundation; either version 3
11
    of the License, or (at your option) any later version.
12

  
13
    This program is distributed in the hope that it will be useful,
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
    GNU General Public License for more details.
17

  
18
    You should have received a copy of the GNU General Public License
19
    along with this program; if not, write to the Free Software
20
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
    MA  02110-1301, USA.
22

  
23
    For any additional information, do not hesitate to contact us
24
    at info AT gvsig.com, or visit our website www.gvsig.com.
25

  
26
-->
27
<definitions>
28
  <version>1.0.0</version>
29
  <classes>
30
    <class name="JDBC2ResourceParameters">
31
      <description></description>
32
      <extends>
33
        <class>DBResourceParameters</class>
34
      </extends>
35
      <fields>
36
        <field name="JDBCDriverClass" type="string" mandatory="true" group="Advanced">
37
          <description>JDBC Driver class</description>
38
        </field>
39
        <field name="URL" type="string" mandatory="true" group="Connection">
40
          <description>JDBC url connection</description>
41
        </field>
42
        <field name="Catalog" type="string" mandatory="false" group="Basic">
43
          <description>Database catalog</description>
44
        </field>
45
        <field name="Schema" type="string" mandatory="false" group="Basic">
46
          <description>Database schema</description>
47
        </field>
48
      </fields>
49
    </class>
50

  
51
    <class name="JDBC2StoreParameters">
52
      <extends>
53
        <class>JDBC2ResourceParameters</class>
54
        <class>DBStoreParameters</class>
55
      </extends>
56
      <tags>
57
          <value name="defaultGroup" value="Basic"/>
58
      </tags>
59
      <fields>
60
      </fields>
61
    </class>
62

  
63
    <class name="JDBC2NewStoreParameters">
64
      <description></description>
65
      <extends>
66
        <class>JDBC2ResourceParameters</class>
67
        <class>DBNewStoreParameters</class>
68
      </extends>
69
      <tags>
70
          <value name="defaultGroup" value="Basic"/>
71
      </tags>
72
      <fields>
73
        <field name="selectRole" label="Roles for select" type="String" mandatory="false" defaultValue="" group="Permissions">
74
          <description>Roles asigned to have select privilegies</description>
75
        </field>
76
        <field name="insertRole" label="Roles for insert" type="String" mandatory="false" defaultValue="" group="Permissions">
77
          <description>Roles asigned to have insert privilegies</description>
78
        </field>
79
        <field name="updateRole" label="Roles for update" type="String" mandatory="false" defaultValue="" group="Permissions">
80
          <description>Roles asigned to have update privilegies</description>
81
        </field>
82
        <field name="deleteRole" label="Roles for delete" type="String" mandatory="false" defaultValue="" group="Permissions">
83
          <description>Roles asigned to have delete privilegies</description>
84
        </field>
85
        <field name="truncateRole" label="Roles for truncate" type="String" mandatory="false" defaultValue="" group="Permissions">
86
          <description>Roles asigned to have truncate privilegies</description>
87
        </field>
88
        <field name="referenceRole" label="Roles for reference" type="String" mandatory="false" defaultValue="" group="Permissions">
89
          <description>Roles asigned to have reference privilegies</description>
90
        </field>
91
        <field name="triggerRole" label="Roles for trigger" type="String" mandatory="false" defaultValue="" group="Permissions">
92
          <description>Roles asigned to have trigger privilegies</description>
93
        </field>
94
        <field name="allRole" label="Roles for all" type="String" mandatory="false" defaultValue="" group="Permissions">
95
          <description>Roles asigned to have all privilegies</description>
96
        </field>
97
        <field name="postCreatingStatement" label="Post-creating statement" type="String" mandatory="false" defaultValue="" group="Advanced">
98
          <description>Roles asigned to have all privilegies</description>
99
        </field>
100

  
101
      </fields>
102
    </class>
103
    
104
    <class name="JDBC2ServerExplorerParameters">
105
      <extends>
106
        <class>JDBC2ResourceParameters</class>
107
        <class>DBServerExplorerParameters</class>
108
      </extends>
109
      <tags>
110
          <value name="defaultGroup" value="Basic"/>
111
      </tags>
112
      <fields>
113
        <field name="ShowInformationDBTables" type="boolean" 
114
            mandatory="false" defaultValue="false" group="Basic">
115
          <description>Show information tables</description>
116
        </field>
117
      </fields>
118
    </class>
119

  
120

  
121
  </classes>
122
</definitions>  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/resources/org/gvsig/mssqlserver/dal/MSSQLServerMetadata.xml
1
<?xml version="1.0"?>
2
<definitions>
3
  <version>1.0.0</version>
4
  <classes>
5
    <class name="MSSQLServer" namespace="Metadata">
6
      <extends>
7
      	<class name="JDBC2" namespace="Metadata"/>
8
      </extends>
9
      <description>Metadata for MSSQLServer</description>
10
      <fields>
11
      </fields>
12
    </class>
13

  
14
  </classes>
15
</definitions>  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/resources/org/gvsig/mssqlserver/dal/MSSQLServerParameters.xml
1
<?xml version="1.0"?>
2
<definitions>
3
  <version>1.0.0</version>
4
  <classes>
5
    <class name="MSSQLServerResourceParameters">
6
      <extends>
7
        <class>JDBC2ResourceParameters</class>
8
      </extends>
9
      <fields>
10
        <field name="JDBCDriverClass" type="string" mandatory="true"
11
          defaultValue="com.microsoft.sqlserver.jdbc.SQLServerDriver" group="Advanced">
12
          <description>JDBC driver class for MS-SQlServer</description>
13
        </field>
14
        <field name="port" type="integer" mandatory="false"
15
          defaultValue="1433" group="Connection">
16
          <description></description>
17
        </field>
18
        <field name="host" type="string" mandatory="false" 
19
            defaultValue="127.0.0.1" group="Connection">
20
          <description></description>
21
        </field>
22
        <field name="instanceName" type="string" mandatory="false" 
23
            defaultValue="SQLEXPRESS" group="Connection">
24
          <description></description>
25
        </field>     
26
        <field name="dbname" type="string" mandatory="false" defaultValue="master" group="Basic">
27
          <description></description>
28
        </field>
29
        <field name="dbuser" type="string" mandatory="false" defaultValue="sa" group="Basic">
30
          <description></description>
31
        </field>
32
        <field name="password" type="string" mandatory="false" defaultValue="123" group="Basic">
33
          <description></description>
34
        </field>           
35
      </fields>
36
    </class>
37

  
38
    <class name="MSSQLServerStoreParameters">
39
      <extends>
40
        <class>JDBC2StoreParameters</class>
41
        <class>MSSQLServerResourceParameters</class>
42
      </extends>
43
      <fields/>
44
    </class>
45

  
46
    <class name="MSSQLServerNewStoreParameters">
47
      <extends>
48
        <class>JDBC2NewStoreParameters</class>
49
        <class>MSSQLServerResourceParameters</class>
50
      </extends>
51
      <fields/>
52
    </class>
53

  
54

  
55
    <class name="MSSQLServerServerExplorerParameters">
56
      <extends>
57
        <class>MSSQLServerResourceParameters</class>
58
        <class>JDBC2ServerExplorerParameters</class>
59
      </extends>
60
      <fields/>
61
    </class>
62

  
63

  
64
  </classes>
65
</definitions>  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/resources/org/gvsig/mssqlserver/dal/MSSQLServerConfig.xml
1
<?xml version="1.0"?>
2
<definitions>
3
  <version>1.0.0</version>
4
  <classes>
5
    <class name="JDBC2">
6
      <extends>
7
      </extends>
8
      <fields>
9
        <field name="function_ST_AsWKB" type="string" group="functions" 
10
          defaultValue="ST_AsWKB({0})" >
11
          <description></description>
12
        </field>
13
        <field name="function_ST_envelope" type="string" group="functions" 
14
          defaultValue="ST_envelope({0})" >
15
          <description></description>
16
        </field>
17
        <field name="function_ST_Extent" type="string" group="functions" 
18
          defaultValue="ST_Extent({0})" >
19
          <description></description>
20
        </field>
21
        <field name="function_ST_intersects" type="string" group="functions" 
22
          defaultValue="ST_intersects({0}, {1})" >
23
          <description></description>
24
        </field>
25
        <field name="function_ST_GeomFromText" type="string" group="functions" 
26
          defaultValue="ST_GeomFromText({0}, {1})" >
27
          <description></description>
28
        </field>
29
        <field name="function_ST_GeomFromWKB" type="string" group="functions" 
30
          defaultValue="ST_GeomFromWKB({0}, {1})" >
31
          <description></description>
32
        </field>
33
        <field name="function_ST_GeomFromEWKB" type="string" group="functions" 
34
          defaultValue="ST_GeomFromEWKB({0}, {1})" >
35
          <description></description>
36
        </field>
37
        <field name="function_current_schema" type="string" group="functions" 
38
          defaultValue="current_schema()" >
39
          <description></description>
40
        </field>
41
        <field name="function_lcase" type="string" group="functions" 
42
          defaultValue="LCASE({0})" >
43
          <description></description>
44
        </field>
45
        <field name="function_count" type="string" group="functions" 
46
          defaultValue="count({0})" >
47
          <description></description>
48
        </field>
49
        <field name="function_crs" type="string" group="functions" 
50
          defaultValue="{0}" >
51
          <description>Use {0} for the abbreviature, {1} for the autority name and {2} for the autority code</description>
52
        </field>
53
        
54
        <!-- operators -->
55
        <field name="operator_isnull" type="string" group="operators" 
56
          defaultValue="{0} is null" >
57
          <description></description>
58
        </field>
59
        <field name="operator_eq" type="string" group="operators" 
60
          defaultValue="{0} = {1}" >
61
          <description></description>
62
        </field>
63
        <field name="operator_neq" type="string" group="operators" 
64
          defaultValue="{0} &lt;&gt; {1}" >
65
          <description></description>
66
        </field>
67
        <field name="operator_lt" type="string" group="operators" 
68
          defaultValue="{0} &lt; {1}" >
69
          <description></description>
70
        </field>
71
        <field name="operator_le" type="string" group="operators" 
72
          defaultValue="{0} &lt;= {1}" >
73
          <description></description>
74
        </field>
75
        <field name="operator_gt" type="string" group="operators" 
76
          defaultValue="{0} &gt; {1}" >
77
          <description></description>
78
        </field>
79
        <field name="operator_ge" type="string" group="operators" 
80
          defaultValue="{0} &gt;= {1}" >
81
          <description></description>
82
        </field>
83
        <field name="operator_and" type="string" group="operators" 
84
          defaultValue="{0} AND {1}" >
85
          <description></description>
86
        </field>
87
        <field name="operator_or" type="string" group="operators" 
88
          defaultValue="{0} OR {1}" >
89
          <description></description>
90
        </field>
91
        <field name="operator_like" type="string" group="operators" 
92
          defaultValue="{0} LIKE {1}" >
93
          <description></description>
94
        </field>
95
        <field name="operator_ilike" type="string" group="operators" 
96
          defaultValue="{0} ILIKE {1}" >
97
          <description></description>
98
        </field>
99
        
100
        <!-- properties -->
101
        <field name="AllowAutomaticValues" type="boolean" group="properties" 
102
          defaultValue="true" >
103
          <description></description>
104
        </field>
105
        <field name="QuoteForStrings" type="string" group="properties" 
106
          defaultValue="'" >
107
          <description></description>
108
        </field>
109
        <field name="QuoteForIdentifiers" type="string" group="properties" 
110
          defaultValue="" >
111
          <description></description>
112
        </field>
113
        <field name="GeometrySupportType" type="string" group="properties" 
114
            defaultValue="WKB" >
115
            <description></description>
116
            <availableValues>
117
                <value label="WKT">WKT</value>
118
                <value label="WKB">WKB</value>
119
                <value label="EWKB">EWKB</value>
120
            </availableValues>          
121
        </field>
122

  
123

  
124

  
125
      </fields>
126
    </class>
127
    
128
    
129
    <class name="MSSQLServer">
130
      <extends>
131
          <class>JDBC2</class>
132
      </extends>
133
      <fields>
134
        <field name="function_ST_AsWKB" type="string" group="functions" 
135
          defaultValue="({0}).STAsWKB" >
136
          <description></description>
137
        </field>
138
        <field name="function_ST_envelope" type="string" group="functions" 
139
          defaultValue="({0}).STEnvelope" >
140
          <description></description>
141
        </field>
142
        <field name="function_ST_Extent" type="string" group="functions" 
143
          defaultValue="({0}).STEnvelope" >
144
          <description></description>
145
        </field>
146
        <field name="function_ST_intersects" type="string" group="functions" 
147
          defaultValue="({0}).STIntersects({1})" >
148
          <description></description>
149
        </field>
150
        <field name="function_ST_GeomFromText" type="string" group="functions" 
151
          defaultValue="geometry::STGeomFromText({0}, {1})" >
152
          <description></description>
153
        </field>
154
        <field name="function_ST_GeomFromWKB" type="string" group="functions" 
155
          defaultValue="geometry::STGeomFromWKB({0}, {1})" >
156
          <description></description>
157
        </field>
158
        <field name="function_ST_GeomFromEWKB" type="string" group="functions" 
159
          defaultValue="geometry::STGeomFromWKB({0}, {1})" >
160
          <description></description>
161
        </field>
162
        <field name="function_current_schema" type="string" group="functions" 
163
          defaultValue="current_schema()" >
164
          <description></description>
165
        </field>
166
        <field name="function_crs" type="string" group="functions" 
167
          defaultValue="{2}" >
168
          <description>Use {0} for the abbreviature, {1} for the autority name and {2} for the autority code</description>
169
        </field>
170
        <field name="function_lcase" type="string" group="functions" 
171
          defaultValue="LOWER({0})" >
172
          <description></description>
173
        </field>
174
        
175
        <!-- operators -->
176
        <field name="operator_ilike" type="string" group="operators" 
177
          defaultValue="{0} ILIKE {1}" >
178
          <description></description>
179
        </field>
180
    
181
    
182
  </classes>
183
</definitions>  
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.fmap.dal.store.jdbc2.JDBCLibrary
2
org.gvsig.mssqlserver.dal.MSSQLServerLibrary
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/java/org/gvsig/mssqlserver/dal/MSSQLServerExplorerParameters.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
 */
22
/**
23
 *
24
 */
25
package org.gvsig.mssqlserver.dal;
26

  
27
import org.apache.commons.lang3.StringUtils;
28
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
29
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
30

  
31
public class MSSQLServerExplorerParameters extends
32
        JDBCServerExplorerParameters {
33

  
34
    public MSSQLServerExplorerParameters() {
35
        super(
36
                MSSQLServerLibrary.NAME + "ServerExplorerParameters",
37
                MSSQLServerLibrary.NAME
38
        );
39
    }
40

  
41
    @Override
42
    public String getUrl() {
43
        String url = super.getUrl();
44
        if( StringUtils.isEmpty(url) ) {
45
            url = MSSQLServerHelper.getConnectionURL(this);
46
            this.setUrl(url);
47
        }
48
        return url;
49
    }
50

  
51
    @Override
52
    public void validate() throws ValidateDataParametersException {
53
        if (getJDBCDriverClassName() == null) {
54
            setJDBCDriverClassName(MSSQLServerHelper.MSSQLServerJDBCDriver);
55
        }
56
        if (getPort() == null) {
57
            setPort(MSSQLServerHelper.PORT);
58
        }
59
        if( getDynValue("instanceName") == null ) {
60
            setDynValue("InstanceName", MSSQLServerHelper.INSTANCE_NAME);
61
        }
62
        super.validate();
63
    }
64
}
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/java/org/gvsig/mssqlserver/dal/MSSQLServerLibrary.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.mssqlserver.dal;
23

  
24
import org.gvsig.fmap.dal.DALLibrary;
25
import org.gvsig.fmap.dal.DALLocator;
26
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
27
import org.gvsig.fmap.dal.store.db.DBHelper;
28
import org.gvsig.fmap.dal.store.jdbc2.JDBCLibrary;
29
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase;
30
import org.gvsig.metadata.exceptions.MetadataException;
31
import org.gvsig.tools.library.AbstractLibrary;
32
import org.gvsig.tools.library.LibraryException;
33

  
34
public class MSSQLServerLibrary extends AbstractLibrary {
35

  
36
    // com.microsoft.sqlserver.jdbc.SQLServerDriver
37

  
38
    public static final String NAME = "MSSQLServer";
39

  
40
    @Override
41
    public void doRegistration() {
42
        registerAsServiceOf(DALLibrary.class);
43
        require(JDBCLibrary.class);
44
    }
45

  
46
    @Override
47
    protected void doInitialize() throws LibraryException {
48
    }
49

  
50
    @Override
51
    protected void doPostInitialize() throws LibraryException {
52
        LibraryException ex = null;
53

  
54
        DataManagerProviderServices dataman = 
55
                (DataManagerProviderServices) DALLocator.getDataManager();
56

  
57
        DBHelper.registerParametersDefinition(
58
                NAME + "StoreParameters",
59
                MSSQLServerStoreParameters.class,
60
                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
61
        );
62
        DBHelper.registerParametersDefinition(
63
                NAME + "NewStoreParameters",
64
                MSSQLServerNewStoreParameters.class,
65
                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
66
        );
67
        DBHelper.registerParametersDefinition(
68
                NAME + "ServerExplorerParameters",
69
                MSSQLServerExplorerParameters.class,
70
                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
71
        );
72
//        DBHelper.registerParametersDefinition(
73
//                NAME + "ResourceParameters",
74
//                MSSQLServerResourceParameters.class,
75
//                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
76
//        );
77
        try {
78
            DBHelper.registerMetadataDefinition(
79
                NAME,
80
                JDBCStoreProviderBase.class,
81
                dataman.getResourceAsStream(this, NAME + "Metadata.xml")
82
            );
83
        } catch (MetadataException e) {
84
            ex = new LibraryException(this.getClass(), e);
85
        }
86

  
87
//        ResourceManagerProviderServices resman = (ResourceManagerProviderServices) DALLocator
88
//                .getResourceManager();
89
//
90
//        if (!resman.getResourceProviders().contains(NAME)) {
91
//            resman.register(NAME,
92
//                "Resource for " + NAME,
93
//                MSSQLServerResource.class,
94
//                MSSQLServerResourceParameters.class
95
//            );
96
//        }
97

  
98
        if (!dataman.getStoreProviderRegister().exits(NAME)) {
99
            dataman.registerStoreProviderFactory(new MSSQLServerStoreProviderFactory());
100
        }
101

  
102
        if (!dataman.getServerExplorerRegister().exits(NAME)) {
103
            dataman.registerServerExplorerFactory(new MSSQLServerExplorerFactory());
104
        }
105
        if (ex != null) {
106
            throw ex;
107
        }
108
    }
109

  
110
}
tags/org.gvsig.mssqlserver-1.0.45/org.gvsig.mssqlserver.provider/src/main/java/org/gvsig/mssqlserver/dal/MSSQLServerSQLBuilder.java
1
package org.gvsig.mssqlserver.dal;
2

  
3
import java.text.MessageFormat;
4
import java.util.ArrayList;
5
import java.util.List;
6
import org.gvsig.expressionevaluator.ExpressionBuilder;
7
import org.gvsig.expressionevaluator.Formatter;
8
import org.gvsig.fmap.dal.DataTypes;
9
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
10
import org.gvsig.fmap.geom.primitive.Envelope;
11
import org.gvsig.mssqlserver.dal.expressionbuilderformatter.MSSQLServerFormatter;
12

  
13
public class MSSQLServerSQLBuilder extends JDBCSQLBuilderBase {
14
    
15
    protected Formatter formatter = null;
16
    public static final String FORMAT_ST_GEOMFROMEWKB= "geometry::STGeomFromWKB({0}, {1})";
17
    public static final String FORMAT_ST_GEOMFROMWKB= "geometry::STGeomFromWKB({0}, {1})";
18
    public static final String FORMAT_ST_GEOMFROMTEXT= "geometry::STGeomFromText({0}, {1})";
19
    public static final String FORMAT_OPERATOR_ILIKE = "LOWER({0}) LIKE LOWER({1})";
20
    public static final String FORMAT_OPERATOR_NOTISNULL = "( ({0}) IS NOT NULL )";
21
    
22
//    public interface MSSQLServerSQLConfig extends SQLConfig {
23
//        public static final String ST_GeomFromTextEx = "ST_GeomFromTextEx";
24
//        public static final String ST_GeomFromWKBEx = "ST_GeomFromWKBEx";
25
//        public static final String ST_GeomFromEWKBEx = "ST_GeomFromEWKBEx";
26
//        public static final String ST_ExtentAggregateEx = "ST_ExtentAggregateEx";
27
//        public static final String ST_UnionAggregateEx = "ST_UnionAggregateEx";
28
//    }
29
 
30
    public MSSQLServerSQLBuilder(MSSQLServerHelper helper) {
31
        super(helper);
32
        
33
        this.defaultSchema = "dbo";
34
        this.allowAutomaticValues = true;
35
        this.geometrySupportType = this.helper.getGeometrySupportType();
36
        this.hasSpatialFunctions = this.helper.hasSpatialFunctions();
37

  
38
        STMT_DELETE_GEOMETRY_COLUMN_FROM_TABLE_schema_table = null;
39
        STMT_DELETE_GEOMETRY_COLUMN_FROM_TABLE_table = null;
40
 
41
        this.STMT_UPDATE_TABLE_STATISTICS_table ="UPDATE STATISTICS {0}";
42

  
43
        this.type_geometry = "GEOMETRY";
44
        this.constant_true = "1=1"; // TODO ?
45
        this.constant_false = "1<>1"; // TODO ?
46
    
47
        this.type_boolean = "BIT";
48
        this.type_double = "FLOAT"; //float con 53 bits de mantisa = float(54)
49
        this.type_numeric_p = "NUMERIC({0})";
50
        this.type_numeric_ps = "NUMERIC({0},{1})";
51
        this.type_bigdecimal = "NUMERIC({0},{1})";
52
        this.type_float = "REAL"; //float con 24 bits de mantisa = float(24)
53
        this.type_int = "INT";
54
        this.type_long = "BIGINT";        
55
        this.type_byte = "TINYINT";
56
        
57
        this.type_date = "DATE";
58
        this.type_time = "TIME";
59

  
60
        this.type_char = "CHAR(1)";
61
        this.type_string = "TEXT";
62
        this.type_string_p = "VARCHAR({0})";
63

  
64
        this.type_version = "VARCHAR(30)";
65
        this.type_URI = "TEXT";
66
        this.type_URL = "TEXT";
67
        this.type_FILE = "TEXT";
68
        this.type_FOLDER = "TEXT";
69
        
70
        this.type_bytearray = "VARBINARY";
71
        
72
        this.type_timestamp = "TIMESTAMP";
73

  
74
//       DID this.ST_SRID, "(({0}).STSrid)");
75
//       DID this.ST_AsText, "({0}).STAsText()");
76
//       DID this.ST_AsBinary, "({0}).STAsBinary()");
77
//       DID this.ST_AsEWKB, "({0}).STAsBinary()");
78
//       DID this.ST_ExtentAggregate, "geometry::EnvelopeAggregate({0})");
79
//       DID this.ST_UnionAggregate, "geometry::UnionAggregate({0})");
80
//       DID this.ST_Contains, "(({0}).STContains({1})=1)");
81
//       DID this.ST_Crosses, "(({0}).STCrosses({1})=1)");
82
//       DID this.ST_Disjoint, "(({0}).STDisjoint({1})=1)");
83
//       DID this.ST_Equals, "(({0}).STEquals({1})=1)");
84
//       DID this.ST_IsClosed, "(({0}).STIsClosed()=1)");
85
//       DID this.ST_Overlaps, "(({0}).STOverlaps({1})=1)");
86
//       DID this.ST_Touches, "(({0}).STTouches({1})=1)");
87
//       DID this.ST_Within, "(({0}).STWithin ({1})=1)");
88
//       DID this.ST_Envelope, "({0}).STEnvelope()");
89
//       DID this.ST_Intersects, "(({0}).STIntersects({1})=1)");
90
//       DID this.ST_GeomFromText, "geometry::STGeomFromText({0}, {1})");
91
//       DID this.ST_GeomFromWKB, "geometry::STGeomFromWKB({0}, {1})");
92
//       DID this.ST_GeomFromEWKB, "geometry::STGeomFromWKB({0}, {1})");
93
//       DID this.ST_Simplify, "({0}).Reduce({1})");
94
//        this.lcase, "LOWER({0})");
95
//        this.ucase, "UPPER({0})");
96
//
97
//        config.set(MSSQLServerSQLConfig.ST_ExtentAggregateEx, "{1}::EnvelopeAggregate({0})");
98
//        config.set(MSSQLServerSQLConfig.ST_UnionAggregateEx, "{1}::UnionAggregate({0})");
99
//        config.set(MSSQLServerSQLConfig.ST_GeomFromTextEx, "{2}::STGeomFromText({0}, {1})");
100
//        config.set(MSSQLServerSQLConfig.ST_GeomFromWKBEx, "{2}::STGeomFromWKB({0}, {1})");
101
//        config.set(MSSQLServerSQLConfig.ST_GeomFromEWKBEx, "{2}::STGeomFromWKB({0}, {1})");
102

  
103
    }
104

  
105
    @Override
106
    public MSSQLServerHelper getHelper() {
107
        return (MSSQLServerHelper) helper;
108
    }
109
    
110
    @Override
111
    protected Formatter formatter() {
112
        if( this.formatter==null ) {
113
            this.formatter = new MSSQLServerFormatter(this);
114
        }
115
        return this.formatter;
116
    }
117
    
118
    protected class MSSQLServerDropTableBuilder extends DropTableBuilderBase {
119

  
120
        @Override
121
           public List<String> toStrings(Formatter formatter) {
122
            List<String> sqls = new ArrayList<>();
123

  
124
            sqls.add(
125
                    MessageFormat.format(
126
                            STMT_DROP_TABLE_table,
127
                            this.table.toString(formatter)
128
                    )
129
            );
130
            return sqls;
131
        }
132
    }
133
    
134
    public class MSSQLServerCreateIndexBuilder extends CreateIndexBuilderBase {
135

  
136
        private Envelope boundingBox;
137
        
138
        public MSSQLServerCreateIndexBuilder() {
139
            super();
140
            this.boundingBox = null;
141
        }
142
        
143
        public void setBoundingBox(Envelope boundingBox) {
144
            this.boundingBox = boundingBox;
145
        }
146
        
147
        private double getXMin() {
148
            // https://alastaira.wordpress.com/2011/07/26/determining-the-geographic-extent-of-spatial-features-in-a-sql-server-table/
149
            return Math.min(boundingBox.getUpperCorner().getX(), boundingBox.getLowerCorner().getX());
150
        }
151
        
152
        private double getYMin() {
153
            return Math.min(boundingBox.getUpperCorner().getY(), boundingBox.getLowerCorner().getY());
154
        }
155
        
156
        private double getXMax() {
157
            return Math.max(boundingBox.getUpperCorner().getX(), boundingBox.getLowerCorner().getX());
158
        }
159
        
160
        private double getYMax() {
161
            return Math.max(boundingBox.getUpperCorner().getY(), boundingBox.getLowerCorner().getY());
162
        }
163
        
164
        @Override
165
        public List<String> toStrings() {
166
            StringBuilder builder = new StringBuilder();
167
            if( this.isSpatial ) {
168
                builder.append("CREATE SPATIAL INDEX ");
169
                builder.append(as_identifier(this.indexName));
170
                builder.append(" ON ");
171
                builder.append(this.table.toString());
172
                builder.append(" ( ");
173
                boolean is_first_column = true;
174
                for( String column : this.columns) {
175
                    if( is_first_column ) {
176
                        is_first_column = false;
177
                    } else {
178
                        builder.append(", ");
179
                    }
180
                    builder.append(column);
181
                }
182
                builder.append(" ) ");
183
                builder.append("USING GEOMETRY_GRID ");
184
                builder.append("WITH( ");
185
                builder.append("BOUNDING_BOX  = ( ");
186
                builder.append("xmin  = ").append(this.getXMin()).append(", ");
187
                builder.append("ymin  = ").append(this.getYMin()).append(", ");
188
                builder.append("xmax  = ").append(this.getXMax()).append(", ");
189
                builder.append("ymax  = ").append(this.getYMax());
190
                builder.append(" )");
191
//                builder.append(", DROP_EXISTING = ON");
192
//                builder.append(", GRIDS  = ( LEVEL_1  = MEDIUM, LEVEL_2  = MEDIUM, LEVEL_3  = MEDIUM, LEVEL_4  = MEDIUM)");
193
//                builder.append(", CELLS_PER_OBJECT  = 16");
194
//                builder.append(", STATISTICS_NORECOMPUTE = OFF");
195
//                builder.append(", ALLOW_ROW_LOCKS = ON");
196
//                builder.append(", ALLOW_PAGE_LOCKS = ON");
197
                builder.append(" ) ");
198
            } else {
199
                builder.append("CREATE ");
200
                if( this.isUnique ) {
201
                    builder.append("UNIQUE ");
202
                }
203
                builder.append("INDEX ");
204
//                if( this.ifNotExist ) {
205
//                    builder.append("IF NOT EXISTS ");
206
//                }
207
                builder.append(as_identifier(this.indexName));
208
                builder.append(" ON ");
209
                builder.append(this.table.toString());
210
                builder.append(" ( ");
211
                boolean is_first_column = true;
212
                for( String column : this.columns) {
213
                    if( is_first_column ) {
214
                        is_first_column = false;
215
                    } else {
216
                        builder.append(", ");
217
                    }
218
                    builder.append(column);
219
                }
220
                builder.append(" )");
221
            }
222
            List<String> sqls = new ArrayList<>();
223
            sqls.add(builder.toString());
224
            return sqls;
225
        }
226
        
227
    }
228
    
229
//    public class MSSQLServerParameter extends ParameterBase {
230
//
231
//        public MSSQLServerParameter() {
232
//            super();
233
//        }
234
//
235
//        @Override
236
//        public String toString() {
237
//            if( this.type == ParameterType.Geometry ) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff