from ..adapters.mssql import MSSQL from .base import SQLRepresenter, JSONRepresenter from . import representers, before_type, for_type @representers.register_for(MSSQL) class MSSQLRepresenter(SQLRepresenter, JSONRepresenter): def _make_geoextra(self, field_type, srid): geotype, params = field_type[:-1].split("(") if params: srid = params return {"srid": srid} @before_type("geometry") def geometry_extras(self, field_type): return self._make_geoextra(field_type, 0) @for_type("geometry", adapt=False) def _geometry(self, value, srid): return "geometry::STGeomFromText('%s',%s)" % (value, srid) @before_type("geography") def geography_extras(self, field_type): return self._make_geoextra(field_type, 4326) @for_type("geography", adapt=False) def _geography(self, value, srid): return "geography::STGeomFromText('%s',%s)" % (srid, value)