AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.11.2004, 13:09   #1  
Павел Максимов is offline
Павел Максимов
Участник
 
7 / 10 (1) +
Регистрация: 18.11.2004
->
Добрый день, господа!
Клепаю датапорт для экспорта данных по Основным Средствам в файл csv.
При обработке некоторых записей датапорт выдает ошибку:
"Размер источника больше размера буфера получателя" (The length of the source exceeds the size of the destination buffer).
Ошибка выдается при попытке датапорта получить из таблицы определенные записи. Есть мнение, что эти записи отличаются от других (с которыми все нормально) длиной поля Description (каковая по умолчанию была равна 30, но впоследствии увеличена до 150). Пороговое значение, после которого начинаются проблемы, пока не установлено. Но уменьшение длины поля (попросту физическое стирание лишних символов в таких записях) помогает. Хочется, однако, чтобы весчь работала без такой камасутры. Где нужно увеличить длину этого самого буфера, чтобы записи подсасывались без проблем?
Буду очень, очень признателен за ценные советы!
Старый 18.11.2004, 13:17   #2  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Ну, собственно, должны быть увеличены все переменные и все поля у таблиц, которые используются. Можно отладчиком посмотреть, где ругается, и последовательно увеличивать длину у каждого объекта.
__________________
С уваженем,
rootadmin
Старый 18.11.2004, 14:48   #3  
Павел Максимов is offline
Павел Максимов
Участник
 
7 / 10 (1) +
Регистрация: 18.11.2004
Если не поставить Breakpoint on Triggers, Debugger не запускается. Система просто выдает сообщение об ошибке.
Если поставить Breakpoint on Triggers, то видно, что сообщение об ошибке возникает после выполнения кода в триггере OnPreDataItem() и перед выполнением кода в триггере OnBeforeExportRecord(). Из этого я делаю вывод, что ошибка возникает, когда система пытается получить из таблицы очередную запись.
В датапорте используется только данные из таблицы Fixed Asset. Данные из других таблиц используются, но никаких ссылок на поле Description в них нет.
Переменные в датапорте, связанные с полем Description, имеют длину не меньше длины поля Description.
Старый 19.11.2004, 10:08   #4  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
По поводу дебаггера - сначала его запускаешь с галочкой BoT - он запускается. Затем рубишь его на первом же брекпоинте, снимаешь галочку BoT, и запускаешь опять. Курсор должен остановится на строке с ошибкой.
__________________
С уваженем,
rootadmin
Старый 19.11.2004, 18:11   #5  
Scorpie is offline
Scorpie
Участник
 
239 / 10 (1) +
Регистрация: 25.10.2004
Адрес: Moskow
Post
Цитата:
Сообщение от rutadmeen
По поводу дебаггера - сначала его запускаешь с галочкой BoT - он запускается. Затем рубишь его на первом же брекпоинте, снимаешь галочку BoT, и запускаешь опять. Курсор должен остановится на строке с ошибкой.
Во-первых зачем так сложно?! Достаточно поставить Active=True,BoT=False.
При ошибке покажет строку.
Другое дело что такая ошибка иногда возникает на очень длинных строках. Помнится мне я пытался импортнуть строки, с текстовым подстрокой длинной символов в 200. Несмотря на размер поля в таблице Нав ругался именно так. При этом ошибка дебагером не ловилась, т.к. кода в датапорте не было ни одной строки.
Думаю тут тот же случай раз строка 150 символов. Я эту проблему решил жёстко укорачивая размер строки - пользователи потом сами добили благо таких было штуки 4 из 600...
Старый 22.11.2004, 11:00   #6  
Павел Максимов is offline
Павел Максимов
Участник
 
7 / 10 (1) +
Регистрация: 18.11.2004
Scorpie, спасибо!
Насколько я понял, проблема неизлечима.
Старый 26.01.2005, 14:51   #7  
хамло is offline
хамло
Участник
 
4 / 10 (1) +
Регистрация: 26.01.2005
это значит, например, что в поле длиной 20 пытаются загнать строку длиной в 30.
такая ошибка часто выскакивает при подобного рода присвоениях.
Старый 27.01.2005, 10:57   #8  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Цитата:
Сообщение от Павел Максимов
Scorpie, спасибо!
Насколько я понял, проблема неизлечима.
Проблема очень даже излечима! Выловить строку можно достаточно быстро без отладчика (насчёт работы отладчиков у меня самого накопился бааальшой отрицательный опыт ещё со времён моей деятельности с 1С: Предлприятие 7.7), которым я лично никогда не пользуюсь при отлове багов. Куда эффективнее вставлять в код промежуточные мессаги с каким-нибудь своими собственными идентификаторами и смотреть, какие отображаются, а на каких вылазит ошибка. За полчаса можно точно определить на какой строке возникает ошибка. Советую потому, что точно такая же ошибка с превышением буфера у меня вылезала когда я апгрейдил процедуру синхронизации с Аутглюком для CRM. Там объём кода достаточно нехилый, но мне потребовалось всего как раз около получаса, чтобы точно знать,- откуда хвост растёт.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 03.01.2007, 18:04   #9  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
УРА!!!!!
Нашел где собака зарыта
Он ругается из-за того что в диалоге пытается отобрзить дескрипшн
ShowStatus Нет
И всё заработало.
Старый 23.01.2007, 12:26   #10  
erp_man
Гость
 
n/a
друг, ты монстр. в свое время бились лучшие умы
Старый 23.01.2007, 12:31   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от erp_man Посмотреть сообщение
друг, ты монстр. в свое время бились лучшие умы
Вы можете добавить респект автору понравившегося сообщения.
__________________
полезное на axForum, github, vk, coub.
Старый 23.01.2007, 12:33   #12  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Проблема возникает когда размер первичного ключа записи превышает определенный предел. Вроде бы 80 символов.
Старый 29.01.2007, 13:45   #13  
iddqd_imported is offline
iddqd_imported
Участник
 
28 / 10 (1) +
Регистрация: 29.12.2003
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вы можете добавить респект автору понравившегося сообщения.
добавил
Старый 11.02.2007, 15:40   #14  
Storkich is offline
Storkich
Участник
 
149 / 10 (1) +
Регистрация: 08.03.2007
Цитата:
Сообщение от rmv Посмотреть сообщение
Размер первичного ключа записи превышает 80 символов.
Есть у таблицы свойство DataCaptionFields туда заносятся поля которые будут отображаться при загрузке/выгрузке и не только.
Можно от туда убрать лишние поля и тоже всё заработает.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:40.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.