我正在向旧的 VB6 应用程序添加功能。我们正在使它对地理空间更加友好。我已经通过升级到 SQL Server 2012 Express 完成了数据库端的更改,并且正在尝试使用geography数据类型。
在 VB6 中,我有一段看起来像这样的代码(是的,我知道 Latitude 拼写错误):
rsGeoref![Lattitude] = IIf(dblLatitude <> "", Val(dblLatitude), Null)
rsGeoref![LatDirection] = IIf(strLatDirection = "", Null, strLatDirection)
rsGeoref![LatDegrees] = IIf(dblLatDegrees <> "", Val(dblLatDegrees), Null)
这是修改一个 RecordSet,然后稍后使用以下命令将其推回数据库:
rsGeoref.Update
所以我现在有一个名为 GeogSpatial 的字段,它使用 SQL Server 2012 中的geography数据类型。我想以同样的方式更新它。这不起作用:
rsGeoref![GeogSpatial] = "geography::STGeomFromText('POINT(" + CStr(dblSignedLong) + " " + CStr(dblSignedLat) + ")', 4326)"
我相信错误来自使用 SQL 存储过程geography::STGeomFromText。如果是这样,我是否有更好的方法来做到这一点,而不必将整个部分重写为单一的 SQL 查询?