2014-11-13 5 views
1

У меня есть Visual Studio 2008 БД является SQL Server 2008 R2 шаги для воспроизведения ошибки являются:SSIS - родной OLE DB - Несколько шагов

  1. Создать новый SSIS пакет
  2. Создать Native OLE DB \ Microsoft Jet 4.0 OLE DB Provider
  3. Создание SQL задач и конфигурации:
    • Resulset: Нет
    • Тип соединения: OLE DB
    • Подключение: Подключение создано муравей 2
    • SQL Источник Тип: Прямой ввод
    • SQLStatements: SELECT 1 FROM таблицы

Когда я запускаю этот пакет следующее сообщение об ошибке apears:

SSIS package "Package.dtsx" starting. 
Warning: 0x0 at SQL_Q_Mensual: Multiple-step OLE DB operation generated errors. 
     Check each OLE DB status value, if available. No work was done. 
Warning: 0x0 at SQL_Q_Mensual: Multiple-step OLE DB operation generated errors. 
     Check each OLE DB status value, if available. No work was done. 
SSIS package "Package.dtsx" finished: Success. 

, а при использовании «.Net-провайдеров для OleDb \ Microsoft Jet 4.0 поставщика OLE DB» пакет не генерирует ошибку.

Я прочитал много заметок в Интернете, но я не знаю, как это разрешить. Я хочу использовать Native OLD db, а не .net Provider.

С уважением, извините, потому что мой бедный английский.

Walter

+0

Использование провайдера OLE DB Microsoft Jet 4.0 указывает, что вы пытаетесь прочитать файл Excel или получить доступ к базе данных. Что он? Как была сконфигурирована строка соединения в OLEDB-соединении? Проверяет ли соединение диспетчера соединений какие-либо ошибки? –

+0

Я подключаюсь к базе данных Access. Строка подключения была настроена автоматически, например «Источник данных = \\ сервер \ общий доступ \ databse.mdb; поставщик = Microsoft.Jet.OLEDB.4.0; ' На испытательном коннекторе коннекция является susessfull Спасибо за ответ! – Walter

ответ

0

Это часто является проблемой типа данных. Убедитесь, что вы передаете действительные типы данных во все, что происходит в базе данных. Например, убедитесь, что вы не передаете значение NULL или пустое значение в столбец, который их не принимает (либо вручную, либо, скажем, столбец DATETIME). Убедитесь, что все длины VARCHAR и числовые границы соблюдены. Убедитесь, что вы выбрали столбец 1, столбец2, столбцы3 вместо использования SELECT *

Примечание: 64-разрядный SQL Server не может использовать Jet, для Jet не существует 64-разрядного поставщика OLEDB для Jet.

+0

Спасибо за ваш ответ. Но когда я выполняю следующий запрос: «Выберите 1 из таблицы» с конфигурацией: «Resulset: None», я получил ошибку, которую я измерил. Поэтому я не думаю, что в этом случае это проблема с типом данных. – Walter

+0

Я нахожусь в 64-разрядном SQL, но я решил скомпилировать проект на 32 бита. Дело в том, что ошибка возникает, но работа выполнена. – Walter

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