从NHibernate连接到ESRI Shape File(DBase * .dbf文件)

时间:2009-07-18 10:59:09

标签: nhibernate dbf dbase

我一直在尝试通过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连接到这种类型的文件,但如果是,有人知道配置中应该包含什么内容吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

从连接字符串中的提供者名称判断,我会尝试NHibernate.Driver.OleDbDriver。

如果不这样做,我会从混合中消除NHibernate,看看你是否可以使用标准.NET数据类进行连接,例如System.Data.Odbc.OdbcConnection和System.Data.OleDb.OleDbConnection。如果你无法在这个级别连接,那么问题不在于NHibernate。