Подключиться к файлу формы 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) есть технический документ