Почему я не могу получить доступ к моей таблице ODBC dBase? - PullRequest
1 голос
/ 21 февраля 2012

Я унаследовал некоторый код C #. Он обрабатывает старые файлы dBase. Никто не трогал код по крайней мере 3-5 лет, и где-то там работает скомпилированная версия, но у меня нет к ней доступа. Теперь, когда я попробую, как это работает, перекомпилировав его из исходного кода в той же среде, в которой он должен работать (та же архитектура, достаточное количество драйверов), я получаю следующую ошибку:

[42S02] [Microsoft][ODBC dBase driver] A Microsoft Jet database engine could not find the object 'test'. Make sure the object exists and that you spell its name and the path name correctly.

( РЕДАКТИРОВАТЬ ) во второй строке

dbCommand.CommandText = "SELECT Count(*) FROM test";
recNum = (int)dbCommand.ExecuteScalar();

( EDIT ) со строкой подключения

OdbcConnection connection = new OdbcConnection(String.Format("driver={{Microsoft dBase Driver (*.dbf)}};DriverID=533;Dbq={0};Exclusive=1;", path));

Я попробовал очевидные решения, найденные в Google, например, удостоверился, что файл действительно существует, изменил имя файла и т. Д. Итак, я уверен, что файл находится там, где он должен быть, я Я уверен, что файл не поврежден (я могу открыть его с помощью некоторой условно-бесплатной программы, которую я скачал из Интернета, не говоря уже о том, что файл не изменился за последние 3-5 лет). Я впервые использую dBase и ODBC, поэтому я могу просто пропустить что-то, что должно быть очевидным.

Что еще я мог бы попытаться заставить это работать?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Очень многим людям нравится использовать Jet в старых файлах .dbf, но на самом деле это может быть не dBASE, а фактически Foxpro (немного отличающаяся информация заголовка).Возможно, вам действительно потребуется загрузить и работать с провайдером VFP OleDB.

Я ответил на предыдущие вопросы , которые помогают показать / описать соединения, кроме того, ссылка на Microsoft для получения / загрузкипоследний поставщик Visual Foxpro OleDB.

Просто примечание в строке подключения.Даже если файл .dbf НЕ является частью «базы данных», но является свободной таблицей, вам нужно подключиться к физическому PATH, в котором находятся данные, ТОГДА просто запросить на основе имени таблицы, чтобы получить ваши данные.

0 голосов
/ 21 февраля 2012

Проверьте, настроен ли источник данных ODBC (Пуск> Настройка> Панель управления> ODBC).Имя источника данных должно быть включено в строку подключения для вашего объекта подключения.Тест таблицы должен быть таблицей базы данных, на которую указывает настроенный источник данных.

...