ShapeファイルからSQL Serverへのインポート時のエラー

ShapeファイルからSQL Serverにインポートするツールを作成したのですが、
SQL Serverが異なる環境の場合、インポートが失敗したのでその際のメモです。

インポートを行った環境は以下の通りです。ローカル環境では、問題なくインポートが成功しましたが、サーバー環境でインポートが失敗しました。

ローカル環境 サーバー環境
OS Windows 10 pro Windows Serer 2016
SQL Server SQL server 2014 Express SQL server 2019
SqlServer.Types SqlServerSpatial120.dll SqlServerSpatial150.dll

原因

失敗した環境の、SQL Serverとツールで使用しているSqlServer.Typesのバージョンが異なっていたため例外BadImageFormatExceptionが発生していたようです。

以下、例外のメッセージです。

対策

ツールでは、SqlServerSpatial120.dllが必要になるのですが、サーバー環境では、System32にはインストールされていません。ですので、SqlServerSpatial120.dllをサーバーにインストールします。

SqlServerSpatial120.dllをサーバーにインストールするには、SQL Server 2014用の
SQLSysClrTypes.msiをダウンロードします。ネットから「SQL Server 2014 Feature Pack」を検索または、以下のサイトから、SQLSysClrTypes.msiを選択し、ダウンロードします。

https://www.microsoft.com/ja-jp/download/details.aspx?id=42295

ダウンロード後、サーバー環境から、SQLSysClrTypes.msiを実行します。

サーバー環境では、System32を確認すると、SqlServerSpatial120.dllがインストールされています。

ちなみに、bin配下にSqlServerSpatial120.dll置いていましたが、参照してくれていないようです。

Print Friendly, PDF & Email

シェアする

  • このエントリーをはてなブックマークに追加

フォローする