-
Notifications
You must be signed in to change notification settings - Fork 136
/
mssql.py
28 lines (22 loc) · 948 Bytes
/
mssql.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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)