Подключиться к файлу формы ESRI (файл DBase *.dbf) из NHibernate

Я пытался выяснить, как подключиться к файлу формы ESRI (который я считаю файлом таблицы DBase) через NHibernate, но мне не повезло ни с чем из того, что я пробовал.

В настоящее время мой конфиг выглядит так:

<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 ответа

Решение

Я бы попробовал другой драйвер NHibernate. Вот список драйверов NHibernate из документации.

Судя по имени провайдера в строке подключения, я бы попробовал NHibernate.Driver.OleDbDriver.

Если это не удастся, я исключу NHibernate из смеси и посмотрю, можно ли подключиться, используя стандартные классы данных.NET, такие как System.Data.Odbc.OdbcConnection и System.Data.OleDb.OleDbConnection. Если вы не можете подключиться на этом уровне, проблема не в NHibernate.

Шейп-файл (.shp) сам по себе не является dbf. На самом деле это набор файлов, одним из которых является DBF, но сам шейп-файл, в котором хранится геометрия, является совершенно другим форматом.

На сайте ESRI (www.esri.com) есть технический документ

Другие вопросы по тегам