如何将几何数据字段显示为文本

时间:2018-03-22 15:20:39

标签: delphi

我正在将DELPHI与ADO和SQL Server 2014结合使用。

在我们的数据库表中,有一个几何数据的空间列。我们可以读取和写入此字段的数据(更多信息请访问:https://docs.microsoft.com/de-de/sql/relational-databases/spatial/spatial-data-sql-server)。

如果我使用TDBGRID组件显示该表,我在表中只显示(BLOB)该列的内容。

现在我想看看这个专栏的内容。是否有任何良好的编码来显示此列的内容,例如在dbmemo中作为文本。

我知道的唯一解决方案是将字段作为文本读入字符串并将其放入正常的备忘录中,我期待获得更有效的方法来访问此数据

1 个答案:

答案 0 :(得分:3)

您可以查询,例如使用Well-known text之类的SQL函数获取STAsText格式:

SELECT MyColumn.STAsText() FROM MyTable

另一种方法是在Well-known binary数据流中获取数据,并在客户端解析它以自己表示文本(描述格式)。要获取此类流,您需要使用STAsBinary函数:

SELECT MyColumn.STAsBinary() FROM MyTable

另一种选择是获取原始geometry数据,因为它们存储在数据库中(正如您现在所做的那样)并自行解析。格式在[MS-SSCLRT]文档中描述。但如果我是你,我最好为WKB格式编写解析器并以WKB格式获取数据,因为它是完全建立的通用格式,而SQL Server内部格式可能会经常更改。