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.

    Maskierung: Wenn Werte mit Leerzeichen beginnen oder enden oder ein Semikolon enthalten, muss der Wert in eingeschlossen werden.

    Hier ein Bsp. zu einem Kennwort: hdx{3KS;.2uIt}"jou4!Utv=9qk

    Muss im Connection-string geschrieben werden als:

    pwd={hdx{3KS;.2uIt}}"jou4!Utv=9qk}

    Hinweis: Das Kennwort hier nur als Bsp., dieses sollte generell besser im dafür vorgesehenem Parameter angegeben werden.

  • 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.

  • epsgCode (-1): Epsg-Code der Daten, wenn nicht definiert, dann wird eine automatische Ermittlung aus der Bounding-Box versucht. Bei quickLoad false wird dieser aus den Daten ermittelt.

  • srid (-1): SRID der Daten, wobei nur 0 sind macht, sonst identisch mit dem EpsgCode. Bei quickLoad false wird diese aus den Daten ermittelt.

  • 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_GUID
  • SQL_SS_UDT (nur in Verbindung mit "Geometry")

Zuletzt geändert: 23.07.2020 15:20:11 (erstmals erstellt 25.03.2018)