2013-04-26 2 views
0

Я пытаюсь вставить некоторые координаты в мою базу данных, но каждый раз, когда я это делаю, он просто говорит <Binary data> в значении.Тип географии в Ms Sql Server 2012 хранится как двоичный?

Я попытался

geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326) 
geography::STPointFromText('POINT(55.9523783996701 -3.2051030639559)', 4326) 
geography::Point(51.4618933852762, -0.926690306514502, 4326) 

Это нормально для этого просто сказать <Binary data>?

ответ

0

Да, внутренние UDT (определяемые пользователем типы), которые реализованы как geography, получают двоичные данные, однако они распознаются механизмом базы данных как нечто большее.

SQL Server автоматически десериализует двоичный файл обратно в объект .NET при его доступе, а также сериализует объект .NET в двоичный файл для хранения.

Итак, когда вы вызываете методы экземпляров UDT, будь то в переменной или столбце, они отвечают, как и следовало ожидать:

declare @var geography = 
     geography::Point(51.4618933852762, -0.926690306514502, 4326); 

select @var.ToString() 
+0

В любом случае, чтобы получить его, чтобы показать, что, когда вы смотрите на в конструкторе. Kinda сосет, что я могу визуально видеть его, глядя на него. – chobo2

Смежные вопросы