古い 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
これで、SQL Server 2012 のgeographyデータ型を使用する GeogSpatial というフィールドができました。同じ方法で更新したいと思います。これは機能しません:
rsGeoref![GeogSpatial] = "geography::STGeomFromText('POINT(" + CStr(dblSignedLong) + " " + CStr(dblSignedLat) + ")', 4326)"
このエラーは、SQL ストアド プロシージャgeography::STGeomFromTextを使用したことが原因であると考えられます。もしそうなら、セクション全体をモノリシック SQL クエリとして書き直さなくても、これを行うためのより良い方法はありますか?