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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.12.2007, 15:35   #1  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Error executing code: Binding operation failed to allocate buffer space
Что это за ошибка?
В классе создается запрос, в который передаются в Range значения типа " *124*,*E128*,*131*,*154*,*155*". Происходит при первом вызове queryRun.next(). Возникает как только длина передаваемой в Range строки начинает превышать 40 символов. Возвращаемое количество строк на предельной длине -9, то есть это не должно зависеть от кол-ва возвращаемых строк, а как-то связано с длиной передаваемой в range строки. Кто-нить сталкивался?

Последний раз редактировалось kitty; 21.12.2007 в 15:42.
Старый 21.12.2007, 16:01   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А текст сформированного SQL-запроса смотреть пробовали? Там все ОК?

А то на простеньком примере в 4.0, вроде, работает.
__________________
С уважением,
glibs®
Старый 21.12.2007, 16:21   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
В общем то, шансы получить ответ могуть повыситься, если Вы укажите:

1) Тип СУБД (от этого может, кстати зависеть набор следующих вопросов) и его версию
2) Версию Аксапты со всеми установленными дополнениями, типа KR
3) Версию MDAC
4) Минимальный пример для воспроизведения ошибки
Старый 21.12.2007, 17:21   #4  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Ax4: kernel: 4.0.2163.0
application: 4.0.2163.0

sql 2005


Пример привести не могу, тк попытки произвести это же на ,допустим SalesTable, к ошибке не приводят (((((((((.
Старый 21.12.2007, 17:23   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от kitty Посмотреть сообщение
Что это за ошибка?

Я в каком то коде встречал следующий прием:

условия разбиваются так, чтобы длина не превышала критического значения и вставляются как Rangи по одному и тому же полю.
Старый 21.12.2007, 17:25   #6  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
именно так пробую разбить , но не помогает
то есть AddRange('длина<40'); AddRange('длина<40') ...
та же ошибка возвращается
Старый 21.12.2007, 17:27   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
а один AddRange точно работает?
Старый 21.12.2007, 17:28   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Это ошибка MS SQL?
__________________
С уважением,
glibs®
Старый 21.12.2007, 17:29   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
вернее они оба по отдельности
Старый 21.12.2007, 17:35   #10  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от belugin Посмотреть сообщение
а один AddRange точно работает?
Я смотрю формируемый запрос tostring и формируется все корректно и с 1 и с 2 addrange. а в момент qr.next отваливается
Старый 21.12.2007, 17:40   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Вы с обоими ренджами по отдельности пробовали (т.е. пытаемся исключить то, что ошибка в данных)
Старый 21.12.2007, 18:05   #12  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
от данных не зависит, тк я вообще сейчас вместо оригинальных данных забила строки "от балды":
так работает:
qb.addRange(FieldNum(table,value)).value('Ett, *rrr*');
qb.addRange(FieldNum(table,value)).value('u, *rnn*, *www*, *ppp*, *xxx*');
в так - не работает, хотя количество символов то же, но "параметров" разное(см вторую строку):
qb.addRange(FieldNum(table,value)).value('Ett, *rrr*');
qb.addRange(FieldNum(table,value)).value('u, r, *n*, *www*, *ppp*, *xxx*');
Старый 21.12.2007, 18:08   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
попробуйте сделать query.literals(1)
За это сообщение автора поблагодарили: kashperuk (5), kitty (1), plumbum (1).
Старый 21.12.2007, 18:16   #14  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
ГЕНИАЛЬНО!!!!!!! ЗАРАБОТАЛО!
Можно я вам что-нить подарю?
Старый 21.12.2007, 18:41   #15  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
А как вы думаете, в чем была проблема. что вываливалась ошибка?
что делают literals -placeholders я понимаю, но что переклинивало ax- не понимаю. Дело в том, что я тут недавно боролась с производительностью и не хочется ее снижать, поэтому думаю поставить условие, при котором ставить litrerals(1). по-видимому ошибка зависела от количества параметров , а не длины строки, но тк я не понимаю почему вываливалась ошибка. не могу гарантировать, что в следующий раз она не появится уже при другом количстве параметров(если условие на literals не сработает).
Что посоветуете? Еще раз огромное спасибо!
Старый 23.12.2007, 20:27   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
по-видимому в запросе была куча плейсхолдеров
то есть вопмировался запрос вида

table.feld like ? or table.feld like ? or table.feld like ? or table.feld like ?

и его перекосячило из за количества вопросиков. Может где-то есть настройка про размер этого буфера (попробуйте в натройках сервера на закладке database tuning выставить буфер побольше) не вполне понятно, почему на других таблицах не работает. Интересно было бы воспроизвести на стандарте.
Старый 28.09.2010, 16:50   #17  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
Цитата:
Сообщение от kitty Посмотреть сообщение
Что это за ошибка?
AX 2009.
Нашел такую же ошибку в логах на сервере aos, источник: Dynamics Server 01. Только вот как найти запрос, из которого эта ошибка появляется, не могу?
Старый 29.09.2010, 16:33   #18  
Mykola Galak is offline
Mykola Galak
Участник
 
40 / 39 (2) +++
Регистрация: 24.01.2008
Адрес: Copenhagen
Данная ошибка возникает когда переполняется буфер обмена между АОСом и сиквелом. Сформированый в квери запрос превышает размер буфера. Значение по умолчанию - 24кБ(значение в настройках сервера указывается в килобайтах). Увеличение размера буфера в параметрах поможет вылечить проблему с превышением размера буфера, но при этом снизит перформанс системы в целом. Такой подход применим как кратковременное решение, чтобы выиграть время и переписать проблемный запрос.
Старый 29.09.2010, 19:10   #19  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
Цитата:
Сообщение от Mykola Galak Посмотреть сообщение
Данная ошибка возникает когда переполняется буфер обмена между АОСом и сиквелом. Сформированый в квери запрос превышает размер буфера. Значение по умолчанию - 24кБ(значение в настройках сервера указывается в килобайтах). Увеличение размера буфера в параметрах поможет вылечить проблему с превышением размера буфера, но при этом снизит перформанс системы в целом. Такой подход применим как кратковременное решение, чтобы выиграть время и переписать проблемный запрос.
с этим все понятно, как найти этот проблемный запрос? если я вижу только ошибку в логе а там нет информации о запросе
Старый 29.09.2010, 19:40   #20  
Mykola Galak is offline
Mykola Galak
Участник
 
40 / 39 (2) +++
Регистрация: 24.01.2008
Адрес: Copenhagen
Цитата:
Сообщение от propeller Посмотреть сообщение
с этим все понятно, как найти этот проблемный запрос? если я вижу только ошибку в логе а там нет информации о запросе
В ивент вьювере обычно содержится кусок запроса, который уместился в буфер. Дальше Ctrl-F по AOТ.

Если у вас по каким-то причинам кверя не записалась в ивент вьювер, то можно включить трейс(~ -4% от перформанса) и выбрать галочку SQL statements в конфигурации сервера. Подождав до первой ошибки в ивент вьювере, отсортировать трейс по длине квери.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics Mobile: How to code your own barcode enabled tasklets (Motorola and Intermec devices) Blog bot DAX Blogs 1 03.06.2014 06:34
Dynamics AX: QueryRun and Query Objects - Binding operation failed to allocate buffer space Blog bot DAX Blogs 0 03.04.2009 08:05
Kashperuk Ivan: Tool for protecting your Dynamics AX source code Blog bot DAX Blogs 0 12.12.2008 04:07
Object Server 01: Failed to create file axsyscs.ahd. Error code was 5 Anniuta DAX: Администрирование 3 24.12.2007 11:56
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:53.