データベースへの接続

394 views
Skip to first unread message

opt...@gmail.com

unread,
Mar 27, 2018, 5:06:21 AM3/27/18
to QGIS初心者質問グループ
こんにちは。
現在、SQLServer2014にgeography型項目にて位置情報を含むテーブルを作成し、QGISにてレイヤーとして追加できないかテストしております。
ローカルのSQLServerでは追加が正常に行われたのですが、リモートのSQLServerのテーブルを追加しようとした際、エラーになってしまいます。

エラーメッセージは
dbname='[DB名]' host=[サーバーアドレス] user='[ユーザー名]' password='[パスワード]' srid=4326 type=Point table="[テーブル名]" (geo) sql=は無効なレイヤです - ロードできませんでした
となっており、詳細な状況がわかりません・・・


QGISの「レイヤ」→「レイヤの追加」→「MSSQL空間レイヤの追加」にて、
接続の「新規」からデータベースアドレス、パスワードなどを入力し、「データベースの一覧表示」や「テスト接続」をクリックした際はエラー表示されず、テーブルの一覧も出てくるのでデータベースへの接続は正常に行われているようです。
テーブルの一覧から対象のテーブルをクリックし、「追加」をクリックするとエラーになります。

SQLServerのマネージメントスタジオにてリモートのサーバーに接続し、テーブルの中まで参照できることは確認しております。

何分情報も少ないので困ってしまっていますが、なにか情報お持ちの方いらっしゃいませんでしょうか。

結局やりたいことは、複数の箇所からQGISのレイヤーの更新作業が行いたいです。
1箇所にサーバーを立てて、SQLServerのテーブルにアクセスし、各場所から更新できればと思ったのですが・・・

環境:windows7 32bit QGIS 2.14.1
   windows10 64bit  QGIS 3.0.1  両環境で試しました。
セキュリティソフトも無効にしてみましたがだめでした。

opt...@gmail.com

unread,
Mar 27, 2018, 10:09:50 PM3/27/18
to QGIS初心者質問グループ
申し訳ありません、自己解決しました。
作成したgeography型を含むテーブルの先頭にint項目がないとエラーになってしまいます?
テストしたローカル環境だとこの項目があったのでエラーとならず、外部データベースでは先頭項目がテキスト
だったのでエラーになっていたようで、先頭をint項目の自動採番項目を追加したところ、外部データベースの
テーブルでもレイヤとして追加されました。

これから複数の端末から同時に編集しようとした際、うまくロックされるかなど確認してみたいと思います。

yoh_chan

unread,
Mar 31, 2018, 4:53:56 AM3/31/18
to QGIS初心者質問グループ
optsanoさま:

こんにちは。
自己解決されたようですが、参考になる情報をありがとうございました。

わたしは普段ジオデータベースとしてSpatiaLiteを利用していますが、こちらもジオテーブルにPRIMARY KEYカラムが無いと空間関数などが利用できなくなる等の不都合が生じるため、実質的にPKは必須になっています。
他のRDBMSについてはあまりわかりませんが、同じような事情があるかもしれませんね。

あ、QGISの話題でなくすみません^^;

opt...@gmail.com

unread,
Apr 1, 2018, 10:15:02 PM4/1/18
to QGIS初心者質問グループ
yoh_chan様
情報ありがとうございます。
SpatiaLiteも気になっておりました。
シェープファイルだと項目名の日本語が化けたりしたので、SpatiaLiteを簡単にテストした際は
文字化けも起こらなかったので使いやすそうですね。

現在、MSSQLレイヤに、他のレイヤのポリゴンをコピーし、貼り付けようとしているのですが
うまくいきません;
MSSQLレイヤに貼り付け、画面上は正常な位置に貼り付けられるのですが、編集モードを更新完了
にした際に地物がどこかに吹っ飛んでしまいます。
CRS等、同じレイヤでもうまく行かず、いろいろ試行錯誤しております。

opt...@gmail.com

unread,
Apr 2, 2018, 2:09:59 AM4/2/18
to QGIS初心者質問グループ
いろいろ調べていましたが、MSSQLレイヤは諦めかけております。

他のレイヤーのポリゴンを貼り付けて編集モードを終了した際、地物が画面上から消えてしまう点と、
地物の追加にて、地図上をクリックし、ポリゴンを作成した際、反時計回りに一周すると大丈夫ですが、
時計回りに地物を作成すると、貼り付けたときと同様、編集モードを終了した際、地物が画面から
消えてしまいます・・・

この問題が以前から解決されていないような気がします。

最新のQGISにて、CRSを変更したりしてみましたが、解決には至りませんでした。
Reply all
Reply to author
Forward
0 new messages