1

NHibernateを介してESRIシェープファイル(DBaseテーブルファイルだと思います)に接続する方法を模索してきましたが、試したことは何もありませんでした。

現在、私の設定は次のようになっています。

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>

<!--<property name="dialect">NHibernate.Dialect.GenericDialect</property>
<property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
<property name="connection.connection_string">Database=A303.dbf;protocol=TCPIP</property>-->

<property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
<!--<property name="connection.connection_string">driver={IBM DB2 ODBC DRIVER};Database=a303.dbf;protocol=TCPIP</property>-->
<property name="connection.connection_string">Provider=VFPOLEDB.1; Data Source=C:\projects\rm4\Sandbox\bin\Debug\A303.dbf;Extended Properties=dBase III</property>
<property name="dialect">NHibernate.Dialect.DB2Dialect</property>
<property name="use_outer_join">true</property>

<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name="show_sql">true</property>

コメントアウトしたビットを残して、私が試している値を確認できるようにしました。何を試しても、次のエラーメッセージが表示されます。

エラー[IM002][Microsoft][ODBCドライバーマネージャー]データソース名が見つからず、デフォルトのドライバーが指定されていません

私はオンラインで見つけた接続文字列のほとんどを調べましたが、ここでの質問に対するいくつかの回答では、何かを入れているだけの「ストローでつかむ」フェーズに到達していましたので、助けを求めたほうがいいと思いました。

NHibernateからこのタイプのファイルに接続できるかどうかさえわかりませんが、接続できる場合は、構成に何を含めるべきか誰かが知っていますか?

4

2 に答える 2

1

シェープファイル(.shp)は、それ自体がdbfではありません。これは実際にはファイルのコレクションであり、そのうちの1つはDBFですが、ジオメトリを格納するシェープファイル自体はまったく異なる形式です。

ESRI Webサイト(www.esri.com)にホワイトペーパーがあります

于 2011-02-12T01:24:03.897 に答える
0

別のNHibernateドライバーを試してみます。ドキュメントからのNHibernateドライバーのリストは次のとおりです。

接続文字列のプロバイダー名から判断すると、NHibernate.Driver.OleDbDriverを試してみます。

これに失敗すると、NHibernateをミックスから除外し、System.Data.Odbc.OdbcConnectionやSystem.Data.OleDb.OleDbConnectionなどの標準の.NETデータクラスを使用して接続できるかどうかを確認します。このレベルで接続できない場合、問題はNHibernateではありません。

于 2009-08-13T13:15:44.147 に答える