25.09.2003, 16:30 | #1 |
Участник
|
[attain] Размер источника больше размера буфера получателя
При импорте данных (CSV) если в источнике встречается строка в поле длинее 250 байт, то интерпретатор выдает ошибку "Размер источника больше размера буфера получателя".
Можно ли как нибудь принудительно обрезать строку до 250 при импорте? |
|
25.09.2003, 17:14 | #2 |
Участник
|
NewString := COPYSTR(String, 1, MAXSTRLEN(NewString))
|
|
25.09.2003, 17:33 | #3 |
Участник
|
Я вошел в порт. Сел на
OnBeforeImportRecord() добавил Adress := COPYSTR(Adress, 1, 250); не режет? |
|
25.09.2003, 17:44 | #4 |
Участник
|
с какой стати оно будет тебе резать если ты длину указал 250?!
250 - максимальная длина строки. Adress := '12345' Adress := COPYSTR(Adress, 1, 3); //Adress = '123' |
|
25.09.2003, 17:46 | #5 |
Участник
|
проблема следующая.
есть CSV файл, в котором ряд полей имеют длину более 250. при импорте появляется ниже описанная ошибка. как ее обойти? желательно обрезать длинные строки до 250. |
|
25.09.2003, 18:05 | #6 |
Участник
|
попробуй сам датапорт настроить по другому. типа использовать св-ва starPos, width св-в полей. соответственно и сам файл возможно предется перегенерить.
|
|
25.09.2003, 18:08 | #7 |
Участник
|
насколько я понимаю эти свойства актуальны в том случае, когда источник имеет записи с фиксированной длинной.
у меня другой случай. предполагаю, что проблема останется. т.к. поле все равно будет больше 250. |
|
26.09.2003, 10:14 | #8 |
Участник
|
Автор вопроса явно один и тот же, а для будущих поколений пригодится http://www.navisoft.ru/forum/showthr...=&threadid=226
|
|
26.09.2006, 17:35 | #9 |
Участник
|
Это ладно 250 символов, а вот у меня больше 70 символов не получается выгрузить такая же ошибка выскакивает. Даже не знаю почему. Но мне очень надо . Помогите пожалуйста. Может у кого-то тоже так было?
Nav 3.6 SQL
__________________
Удачи! |
|
18.10.2006, 12:03 | #10 |
Участник
|
аналогичная проблема проявлялась при попытке импортировать в т18 Customer
удалось победить только так: 1. датапорт заливал данные в буферную временную таблицу 2. после окончания работы датапорта все записи из буферной таблицы переносились в табл 18. имхо, природа глюка зарыта глубоко в недрах Navision. Прошу корифеев высказаться - в 4.0 проблема осталась, или вылечили? |
|
06.12.2006, 21:39 | #11 |
Участник
|
Описать переменную Adrs типа Text длинной 1024(Максимальная длинна Text для переменной, не поля)
В Dataport Fields вместо поля Adress, указать Adrs Причем, навижн автоматически обрежет и запишет в переменную Adrs значение, длина которого больше максимальной. Т.е. Если надо "обрезать" данные до длинны 100, то описать надо переменную Adrs Text 100 И OnBeforeImportRecord триггер Вызывается ДО импорта строки данных, т.е. поля табличной переменной в этом случае еще не заполнены данными из файла. Поэтому, обработку надо проводить в триггере OnAfterImportRecord (!) Adress := Adrs; Если свойство датапорта AutoUpdate стоит Да, тогда MODIFY в триггере ставить не обязательно Последний раз редактировалось artkashin; 06.12.2006 в 21:47. |
|
08.12.2006, 16:23 | #12 |
Участник
|
2 Maks: афтар, атчитайся. удалось победить?
|
|
08.12.2006, 17:15 | #13 |
Участник
|
Проблема связана с тем, что первичный ключ у таблицы, в которую идет загрузка слишком длинный и его значение становится больше определенного ограничения при загрузке. У меня такая ошибка вылезала на таблице, в первичном ключе которых был Text > 200.
Возможные решения: 1. Временная таблица с другим первичным ключем. 2. Обрезание длинных ключевых полей при загрузке до минимума. 3. Грузить все в переменные и делать INSERT. |
|
08.03.2007, 17:25 | #14 |
Участник
|
Всё просто
Привет мегамонстры программирования расскажу в чём проблема и Вам.
У таблицы есть свойство(Ptoperty) DataCaptionFields Поля из этого свойства отображаются в заголовке формы и диалоге во время использования DataPort. Обычно туда пихают Description. Чтобы всё было Ок, есть два выхода, либо в таблице убираем поля из свойства DataCaptionFields Либо в датапорте делаем ShowStatus=Нет И всё работает. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Navision Attain через Citrix | 2 | |||
Переход на Navision Attain | 3 | |||
Изменение длины полей в Attain'e | 11 | |||
attain - Переход на attain | 8 | |||
1С и Attain | 2 |
|