2013-07-12 3 views
0

В запросе SQL я могу сказатьSQL Geometry возвращаемый тип

select * 
from location 
where geoLocation.STDistance(0xE6100000010CDDB5847CD0EB42C033333333331F6240) < 10000 

, но как я могу передать, что 0xE61 ... бит в программно.

при возвращении из базы данных он представляется в двоичном формате. Таким образом, просто вставка его в запрос не работает. Если я добавлю его в качестве двоичного типа, это тоже не сработает.

Есть ли способ, чтобы получить Geolocation из базы данных, которая сохраняет его в указанном выше формате, я попытался его отливки в VARCHAR, но в конце концов, как POINT (....

+0

Итак, у вас есть эти значения в шестнадцатеричном формате, хранящейся в базе данных, и вы хотите использовать их в вашем запросе, но не может сравнить его с 10000? –

+0

То есть формат 0xE6 ... как SQL хранит геометрию. 1000 - это расстояние в метров. Вероятно, вы не понимаете STDistance. –

+0

Ну, на самом деле я никогда не использовал его, и я не знал, что это возможно. Я просто пытался понять ваш вопрос и помочь. –

ответ

1

SQL имеет кучу статических методов для создания геопространственных данных Проверьте this из (в частности, OGC статических и расширенных статических ссылок). Например:.

DECLARE @g geography; 
SET @g = geography::STPointFromText('POINT(-122.34900 47.65100)', 4326); 
SELECT @g.ToString();