Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从NHibernate连接到ESRI形状文件(DBase*.dbf文件)_Nhibernate_Dbf_Dbase - Fatal编程技术网

从NHibernate连接到ESRI形状文件(DBase*.dbf文件)

从NHibernate连接到ESRI形状文件(DBase*.dbf文件),nhibernate,dbf,dbase,Nhibernate,Dbf,Dbase,我一直在试图解决如何通过NHibernate连接到ESRI shape文件(我认为它是一个DBase表文件),但我所做的任何尝试都没有成功 目前,我的配置如下所示: <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <!--<property name="dialect">NHibernate.Dialect.Ge

我一直在试图解决如何通过NHibernate连接到ESRI shape文件(我认为它是一个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>
NHibernate.Connection.DriverConnectionProvider
NHibernate.Driver.OdbcDriver
提供者=VFPOLEDB.1;数据源=C:\projects\rm4\Sandbox\bin\Debug\A303.dbf;扩展属性=数据库III
NHibernate.dial.DB2Dialect
真的
NHibernate.ByteCode.Castle.proxyFactory,NHibernate.ByteCode.Castle
真的
我把注释掉的部分保留了下来,这样你就可以看到我一直在尝试的值。无论我尝试什么,我都会收到错误消息:

错误[IM002][Microsoft][ODBC驱动程序管理器]未找到数据源名称,且未指定默认驱动程序

我已经浏览了我在网上找到的大部分连接字符串,在这里的一些问题回答中,我进入了“抓住救命稻草”阶段,在这一阶段,我只是在插入任何东西,所以我认为我最好寻求帮助


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

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

根据连接字符串中的提供者名称判断,我会尝试使用NHibernate.Driver.OleDbDriver


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

我将尝试其他NHibernate驱动程序。以下是文档中的列表

根据连接字符串中的提供者名称判断,我会尝试使用NHibernate.Driver.OleDbDriver

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

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

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

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


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

附带说明,shapefile属性表是以dBase格式存储的(不记得是dBase IV还是5,但其中之一),因此您应该能够使用任何可以读取dBase文件的db驱动程序来读取它们。大多数驱动程序都将一个目录作为“数据库”,然后该目录中的每个dbf文件都是数据库中的一个表。另一方面,shapefile属性表是以dBase格式存储的(不记得是dBase IV还是dBase 5,而是其中之一),因此您应该能够使用任何可以读取dBase文件的db驱动程序来读取它们。大多数驱动程序都让你指向一个目录作为“数据库”,然后该目录中的每个dbf文件都是数据库中的一个表。您好,很抱歉没有早点回复-没有收到关于回复的电子邮件。最后,我使用OleDb驱动程序直接连接到数据,效果很好。它在项目结束时的待办事项列表上,将其转换为NHibernate,因此我将尝试您的建议。谢谢。嗨,很抱歉没有及时回复-没有收到关于回复的电子邮件。最后,我使用OleDb驱动程序直接连接到数据,效果很好。它在项目结束时的待办事项列表上,将其转换为NHibernate,因此我将尝试您的建议。谢谢