2009-07-18 2 views
1

Я пытался выяснить, как подключиться к файлу формы ESRI (который, как мне кажется, является файлом таблицы DBase) через NHibernate, но не был любая удача в чем-либо, что я пробовал.Подключиться к файлу формы ESRI (файл DBase * .dbf) из 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 Driver Manager] Источник данных не найден и драйвер по умолчанию не указано

Я прошел через самый из строки подключения, которую я нашел в Интернете, и в некоторых ответах на вопросы, которые здесь были, приходило к фазе «сжимания на соломинках», где я просто вкладываю что-то в такое размышление, что лучше попросить о помощи.

Я даже не уверен, можно ли подключиться к этому типу файлов из NHibernate, но если да, то кто-нибудь знает, что должно быть в конфиге?

+0

На стороне записки, таблицы атрибутов шейпфайл сохраняются в формате DBASE (не помню, если это Dbase IV или 5, но одна из них), чтобы вы могли читать их с помощью любого драйвера db, который может читать файлы dBase. В большинстве драйверов вы указываете на каталог как «база данных», а затем каждый файл dbf в этом каталоге является таблицей в базе данных. –

ответ

0

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

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

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

+0

Привет, извините, что не отвечал раньше - не получил сообщение по электронной почте через ответ. Я закончил использование драйвера OleDb для непосредственного подключения к данным, и это работает нормально. В конце проекта он находится в списке дел, чтобы преобразовать его в NHibernate, поэтому я попробую ваше предложение, когда я это сделаю. Благодарю. –

1

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

Существует официальный документ на веб-сайте ESRI (www.esri.com)

Смежные вопросы