ODBC

Ermöglicht den Zugriff auf auf Datenbanken, für die ein ODBC Treiber verfügbar ist.

Derzeit steht hierbei Microsoft SQL Server im Vordergrund. Für andere Datenbanken sind entsprechende native Treiber implementiert (z.B. für PostgreSQL, Oracle)

Argumente

Typname: OdbcLayer

  • connectionString: ODBC Verbindungszeichenfolge.

    Für SQL Server empfehlen wird die Verwendung des Treibers "SQL Server Native Client 11.0". Ein Anleitung für Download finden Sie hier, oder hier direkt der Link zum x64 Installer, bzw. Link zum x86 Installer.

  • source: Name der Tabelle oder einer Abfrage in der für die Datenbank gültigen Syntax.

  • geomColumnName (null): Name der Spalte, die die primäre Geometrie darstellt, wenn nicht angegeben, dann wird die 1. Geometriespalte der Quelle genommen. Ist keine vorhanden, dann wird die Ebene ohne Geometrie verwendet.

  • idColumnName (null): Name einer Spalte die eindeutige Werte in dieser Datenquellen kennzeichnet.

  • userName (null): Überschreibt, wenn angegeben, den Nutzernamen im ConnectionString, kann verschlüsselt angegeben werden.

  • passWord (null): Überschreibt, wenn angegeben, das Kennwort im ConnectionString, kann verschlüsselt angegeben werden.

  • quickLoad (false): Legt fest, ob Count, BBox etc. beim ersten Zugriff ermittelt werden sollen.

  • style|cssFile: hier immer vom Typ Vector CSS, macht nur Sinn, wenn auch eine Geometriespalte in der Quelle vorhanden ist.

Ladevorgang

Wenn beim Laden quickLoad nicht mit false angegeben wurde, dann wird ...

  • keine Geometrie:

        SELECT COUNT(*) as CNT FROM {source}
    
  • mit Geometrie: ... je nach Datenbank (hier als MsSql Abfrage dargestellt) Ermittlung der BBox ....

      	WITH
      	ENVELOPE as
      	(
      		SELECT {geom}.STEnvelope() as envelope  FROM {source} WHERE NOT {geom} IS NULL
      	),
      	CORNERS as
      	(
      		SELECT envelope.STPointN(1) as point from ENVELOPE
      		UNION ALL select envelope.STPointN(3) from ENVELOPE
      	)
      	SELECT
      		count(*) as cnt,
      		case when min(point.STSrid) = max (point.STSrid) then min(point.STSrid)  else null end as srid,
      		MIN(point.STX) as MinX,
      		MIN(point.STY) as MinY,
      		MAX(point.STX) as MaxX,
      		MAX(point.STY) as MaxY
      	FROM
      		CORNERS
      	)
    

... ausgeführt.

Beispiel

{
"MsSQL": {
    "type": "OdbcLayer",
	"epsgCode": 25833,
	"connectionString": "dsn=test;uid=sa;pwd=geheim",
	"Source": "[DB].[dbo].[FOO_SHAPE_TABLE]",
	"geomColumnName":"geom",
	"idColumnName":"id",
	"cssfile": "D:\\Temp\\CSS\\VectorLayer.css"
    }
}

Implementierungsdetails / Features und Einschränkungen

Geometrien sind derzeit nur für Microsoft SQL Server implementiert (wie in der Einleitung geschrieben stehen für andere Datenbanken native Implementierungen zur Verfügung).

Der Abfruf der Geometrien erfolgt ohne jegliche Konvertierung direkt. Die für Microsoft SQL Server implementierten Geometrieformate finden Sie hier beschrieben.

Wir unterstützen derzeit nur den Datentyp Geometry, nicht Geography.

SQL Datentypen

Folgende Datentypen werden unterstützt:

  • SQL_CHAR
  • SQL_VARCHAR
  • SQL_LONGVARCHAR
  • SQL_WCHAR
  • SQL_WVARCHAR
  • SQL_WLONGVARCHAR
  • SQL_DATETIME
  • SQL_DECIMAL
  • SQL_NUMERIC
  • SQL_SMALLINT
  • SQL_INTEGER
  • SQL_REAL
  • SQL_FLOAT
  • SQL_DOUBLE
  • SQL_BIT
  • SQL_TINYINT
  • SQL_BIGINT
  • SQL_BINARY
  • SQL_VARBINARY
  • SQL_LONGVARBINARY
  • SQL_TYPE_DATE
  • SQL_TYPE_TIME
  • SQL_TYPE_TIMESTAMP
  • SQL_SS_UDT (nur in Verbindung mit "Geometry")

Zuletzt geändert: 06.12.2018 07:58:21 (erstmals erstellt 25.03.2018)