Служба SSIS не может распознать тип данных столбца Дата - PullRequest
0 голосов
/ 10 сентября 2018

Хорошо, поэтому я сделал эту демонстрацию, чтобы представить проблемы, с которыми я столкнулся в своем проекте.

Прежде всего, у меня есть пустая таблица в локальной базе данных, которая выглядит следующим образом:

enter image description here

* Обратите внимание на тип данных date столбца A.

Далее я создаю пакет с менеджером соединений программно через Visual Basic с использованием Microsoft.SqlServer.Dts.Runtime:

Imports Microsoft.SqlServer.Dts.Runtime

Module Module2

    Sub Main()

        Dim app As Application = New Application()
        Dim package As Package = New Package()

        Dim connectionManager As ConnectionManager = package.Connections.Add("OLEDB")
        connectionManager.Properties("Description").SetValue(connectionManager, "DESCRIPTION")
        connectionManager.Properties("Name").SetValue(connectionManager, "Test")

        Dim Provider As String = "SQLOLEDB"
        Dim ServerName As String = "DESKTOP-UPN5DLT"
        Dim DatabaseName As String = "Test"

        connectionManager.ConnectionString = "Data Source=" &
            ServerName & ";Initial Catalog=" &
            DatabaseName & ";Provider=" & Provider & ";Integrated Security=SSPI;"

        app.SaveToXml("C:\Users\zafir\Desktop\Package_3.dtsx", package, Nothing)

    End Sub

End Module

Затем я открываю пакет .dtsx в инструментах данных и добавляю поток данных с одним компонентом назначения OLE DB.

Когда я связываю компонент с сгенерированным диспетчером соединений, тип данных для столбца A не распознается, и для него устанавливается значение по умолчанию DT_WSTR размера 10.

enter image description here

Все остальные типы данных (в данном случае: datetime & int) распознаны правильно.

Теперь, если я удалю менеджер соединений ole db и добавлю его вручную, это будет работать как шарм.

У меня есть следующие характеристики:

  • SQL Server 2016
  • Инструменты данных 2015
  • DTSRuntimeWrap.dll 12.0.0.0

Как мне решить эту проблему?Это, очевидно, проблема с библиотекой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...