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 Driver Manager] 未找到数据源名称且未指定默认驱动程序

我已经浏览了我在网上找到的大部分连接字符串,在这里对问题的一些答案是进入“抓住稻草”阶段,我只是把任何东西都放进去,所以我想我最好寻求帮助.

我什至不确定是否可以从 NHibernate 连接到这种类型的文件,但如果可以,有谁知道配置中应该包含什么?

4

2 回答 2

1

Shapefile (.shp) 本身不是 dbf。它实际上是一个文件集合,其中一个是 DBF,但存储几何图形的 shapefile 本身是完全不同的格式。

ESRI 网站 (www.esri.com) 上有一份白皮书

于 2011-02-12T01:24:03.897 回答
0

我会尝试不同的 NHibernate 驱动程序。这是文档中的NHibernate 驱动程序列表。

从您的连接字符串中的提供程序名称来看,我会尝试 NHibernate.Driver.OleDbDriver。

如果做不到这一点,我会从组合中删除 NHibernate,看看您是否可以使用标准的 .NET 数据类进行连接,例如 System.Data.Odbc.OdbcConnection 和 System.Data.OleDb.OleDbConnection。如果您无法在此级别连接,则问题不在于 NHibernate。

于 2009-08-13T13:15:44.147 回答