Импорт данных из многозначной базы данных D3 в проблемы SQL

Попытка использовать mv.NET с помощью инструментов bluefinity. Сделал несколько интеграционных пакетов для импорта данных из многозначной базы данных d3 в MS SQL 2012, но, похоже, возникли некоторые проблемы с отображением.

Для таблицы VOYAGES есть несколько полей commentX в приложении D3, которые работают довольно громоздко, и INSERT завершается неудачно после определенного числа строк со следующим сообщением

>Error: 0xC0047062 at INSERT, mvNET Source[354]: System.Exception: Error @8: dataReader[0] = LTPAC002 ci.BufferColumnIndex = 52, ci.ColumnName = COMMGROUP(Error @8: dataReader[0] = LTPAC002 ci.BufferColumnIndex = 52, ci.ColumnName = COMMGROUP(The value is too large to fit in the column data area of the buffer.))
at mvNETDataSource.mvNETSource.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPrimeOutput(IDTSManagedComponentWrapper100 wrapper, Int32 outputs, Int32[] outputIDs, IDTSBuffer100[] buffers, IntPtr ppBufferWirePacket)
Error: 0xC0047038 at INSERT, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.The PrimeOutput method on mvNET Source returned error code 0x80131500.The component returned a failure code when the pipeline engine called PrimeOutput().The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.There may be error messages posted before this with more information about the failure.

Значение слишком велико, чтобы поместиться в области данных столбца буфера. -> попытался изменить типы входов / выходов, но не могу понять, что это правильно. В таблице SQL столбцы имеют тип ntext. В задании.dtsx тип данных для столбцов имеет тип Unicode String [DT_WSTR] длиной 4000, я думаю, что они определяются автоматически.

Импорт работал для других файлов D3, как это, не уверен, почему это не удается для этих полей комментариев.

Время выполнения запроса в mv.NET Data Manager (на сервере d3) истекает через 240 секунд, так что, может быть, это основная проблема?

Есть идеи, как поступить? Спасибо ~

2 ответа

Исключение выдается из mv.NET, поэтому я предлагаю вам позвонить (или попросить вашего реселлера) позвонить в службу поддержки Bluefinity и спросить их об этом. Вы платите за поддержку, можете использовать ее. Этим программам нельзя позволять генерировать подобные исключения.

D3 не экспортирует Unicode, это может быть одной проблемой. Но если тайм-аут Data Manager, то я подозреваю, что что-то не так в подключении к D3. Откройте Монитор подключений в Мониторе сеансов и наблюдайте за подключением при выполнении запроса. Я предполагаю, что он либо зависает, либо, скорее всего, попадает в BASIC Debug.

Убедитесь, что все программы на стороне D3, связанные с этим, либо все Flash-скомпилированы, либо все не перепрошиты. Код вашего приложения попадет в Debug, если он не Flashed, а MVNET.BP.

Если ваша программа находится в Debug, исправьте это. Если вы не уверены, какая это программа, LIST-RUNTIME-ERRORS в DM.

Если это программа MVNET.BP, снова работайте с Bluefinity. Если вы используете MVSP для подключения, тогда Монитор подключений может оказаться бесполезным, вам нужно изменить его на IP-соединение (Telnet), чтобы увидеть обмен необработанными данными.

Наиболее вероятной причиной является то, что столбец COMMGROUP не имеет правильного типа данных или некоторые записи в источнике не соответствуют выходному типу. Чтобы найти запись об ошибке (вызывающую), вы должны использовать строку перенаправления (свойство компонента, отказавшего от компонента) и получить набор результатов в какой-то txt.csv / или tsv файл. затем проверьте данные

Другие вопросы по тегам