Источник данных SSIS dBase - " не удалось открыть набор строк для "x". Убедитесь, что объект существует в базе данных"



Я пытаюсь загрузить некоторые данные из файла dBase с помощью SSIS. Я никогда не работал с dBase.
Файлы создаются сторонним приложением.



База данных содержит одну таблицу, C:dbfexceptions.dbf



В SSIS я создал Microsoft Jet 4.0 OLE DB Provider, вставил C:dbf в качестве имени файла, вставил dBASE III для расширенных свойств (первый байт файла - 0x03, который указывает на III в соответствии с этим). Соединение проходит нормально.



Затем я пытаюсь добавить источник OLE DB, используя его диспетчер соединений. Когда я нажимаю на выпадающий список Name of the table or the view:, он правильно заполняет Exceptions как единственную таблицу. Если я выберите его и нажмите предварительный просмотр, я получаю



Exception from HRESULT: 0xC02020E8
Error at ETL Exceptions [OLE DB Source [1]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37.

Error at ETL Exceptions [OLE DB Source [1]]: Opening a rowset for "exceptions" failed. Check that the object exists in the database.


Я могу открыть файл exceptions.dbf в DBF Viewer 2000 без каких-либо проблем.



Насколько мне известно, нет никаких учетных данных, которые нужно вводить (DBF Viewer 2000 не запрашивает их, и я могу обновлять строки без проблем), но диспетчер соединений настаивает на заполнении Admin для имени пользователя.



Обновление : согласно DBF Viewer 2000, тип файла FoxBase+/dBASE III PLUSE, no memo



Update 2 я попытался открыть некоторые другие таблицы, которые генерирует приложение. Некоторые открывают, некоторые дают эту ошибку.



диспетчер соединений



Источник OLE DB



Эро ...

545   3  

3 ответов:

Я нашел обходной путь. Изменив провайдера на Microsoft OLE DB Provider for Visual FoxPro, введя путь к каталогу и оставив все остальное по умолчанию, я теперь могу открыть таблицу. Теперь я получаю предупреждение:

Компонент выдал следующие предупреждения:

Предупреждение в {FBAE0F44-DE41-4862-8C53-228C63D87A01} [поставщик OLE DB для источника [1]]: не удается получить значение столбца код страницы информация от поставщика OLE DB для. Если компонент поддерживает свойство "DefaultCodePage", то кодовая страница из этого свойства будет использовать. Измените значение свойства, если текущие значения кодовой страницы строки неверны. Если компонент не поддерживает свойство, будет использоваться кодовая страница из идентификатора локали компонента.

Выберите OK, если вы хотите продолжить операцию.

Выберите отмена, если вы хотите остановить операцию.

Что вполне приемлемо, так как мы все о 1252.

У меня была такая же проблема в одном из моих проектов, и я обнаружил, что если ваше имя файла больше 8 символов без расширения, то вы получаете эту ошибку, измените свое прекрасное имя на более короткое имя, и оно будет работать нормально.

Эта ошибка возникает, когда у нас есть другое имя рабочего листа excel в открытом наборе(при выборе этого компонента ввода excel -> свойства - > нижний конец открытого набора). Пожалуйста, проверьте это имя из названия рабочего листа excel. если у него есть пространства, тогда это другое. Следовательно, мы должны снова создать этот диспетчер соединений excel и переназначить его в компонент базы данных.

Спасибо!

Comments

    Ничего не найдено.