
Notas acerca de la implementacion del proveedor de MS SQLServer.
====================================================================

Software
----------

Las pruebas realizadas durante el desarrollo se han hecho sobre:

- Microsoft SQL Server Express 2014 (64-bit), versin 12.0.2000.8
- Microsoft Windows NT 6.3 (9600), plataforma NT x64

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

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

Configuracin
--------------

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

Para poder acceder al servidor es necesario:

- Habilitar la conexion al servidor a traves de TCP/IP. Esto se activara
  desde:
  - Sql Server Configuration Manager
  - Configuracion de red de SQL Server
  - Protocolos de SQLEXPRESS
  - TCP/IP
   - General
     - Habilitado: Si
   - Direcciones IP
     - IP4
       - Activo: Si
       - Habilitado: Si

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

- Durante todas las pruebas se ha utilizado "Autenticacin de SQL Server".
  Es posible que para otros tipos de autenticacin sea necesario incluir alguna
  otra libreria (como sqljdbc_auth.dll x64/x86).

Soporte espacial
-------------------

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

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

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

Sistemas de referencia
------------------------

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

Valores por defecto
---------------------

Los datos de conexion por defecto son:

- Host: 127.0.0.1
- Instance: SQLEXPRESS
- Database: master
- Schema: dbo
- user: sa
- password: 123

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

Problemas conocidos
--------------------

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

- La herramienta "Selection by layer" no funciona.

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

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

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

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

