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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2004, 10:57   #1  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Контейнерные и текстовые поля не могут быть использованы в выражении WHERE
Доброго утра!

Помогите разобраться


PHP код:
while select inventItemRange  where inventItemRange.RangeId == drcCode 
На это ругается, пишет что

Контейнерные и текстовые поля не могут быть использованы в выражении WHERE.

И второй вопрос -- при copy/paste (допустим из Аксапты в Word) вылезают каракули, я понимаю, что это из-за Юникода. Может есть какой способ избежать иероглифов?
Старый 04.10.2004, 11:01   #2  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
Без обид. Этот вопрос уже кучу раз подумылся на форуме. (Мной тоже )
RangeId tmpRange;

tmpRange = drcCode;

while select inventItemRange where inventItemRange.RangeId == tmpRange;
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 04.10.2004, 11:09   #3  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
А если так:
while select inventItemRange where SubStr(inventItemRange.RangeId,1,4) == "КАУ_"
Старый 04.10.2004, 11:16   #4  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
ну если вы такой упорный, то тогда так:
http://www.axforum.info/forums/searc...rder=ascending
тама усе есть.
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 04.10.2004, 15:18   #5  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
К сожалению там есть лишь подобные ситуации, но в них можно объявить тип поля.
Для моего случая, ничего не пошло.
Старый 04.10.2004, 15:31   #6  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
http://forum.mazzy.ru/index.php?showtopic=173
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 04.10.2004, 15:34   #7  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Изначально опубликовано Александр Костоусов
К сожалению там есть лишь подобные ситуации, но в них можно объявить тип поля.
Для моего случая, ничего не пошло.
Не понял. Вы про этот "случай" говорите ->
Цитата:
Изначально опубликовано Александр Костоусов
while select inventItemRange where SubStr(inventItemRange.RangeId,1,4) == "КАУ_"
Так перепишите select в виде query с range "КАУ_*" и будет Вам счастье .
__________________
С уважением, Вячеслав.
Старый 04.10.2004, 15:40   #9  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Да, я прекрасно понимаю, что в WHERE надо иметь строки фиксированной длины, но ведь речь о том чтобы в запросе использовать часть выбираемой строки.

PHP код:
while select inventItemRange where SubStr(inventItemRange.RangeId,1,4)== "КАУ_" 
Я ж не могу объявить SubStr(inventItemRange.RangeId,1,4) фиксированной длины,
оно же (inventItemRange.RangeId) на каждой итерации имеет свое значение.

Благодарю за предыдущие советы!
Старый 04.10.2004, 15:41   #10  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Ответ писался в отрыве от последних двух сообщений.
Sorry если некорректно вышло!
Старый 04.10.2004, 15:59   #11  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
А можно с query попдробнее?!
Старый 04.10.2004, 16:24   #12  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Изначально опубликовано Александр Костоусов
А можно с query попдробнее?!
Не понял. А чего с ним, query, не так?

PHP код:
Query               query = new Query();
    
QueryRun            queryRun;
    
InventItemRange     inventItemRange;
    ;
    
query.addDataSource(tableNum(InventItemRange));
    
query.dataSourceTable(tablenum(InventItemRange)).addRange(fieldNum(InventItemRangeRangeId)).value("КАУ_*");
    
queryRun = new QueryRun(query);

    while (
queryRun.next())
     {
        
inventItemRange queryRun.get(tableNum(InventItemRange));
        
Info(strfmt('%1'inventItemRange.RangeId));
     } 
PS/ ну или если уж вернуться к select'у =
PHP код:
while select inventItemRange where inventItemRange.RangeId like "КАУ_*" 
PPS/ или я чего-то не понимаю по существу вопроса?
__________________
С уважением, Вячеслав.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
Использование контейнеров и полей с неограниченными строками (текстом) в выражении WHERE не допускается. cutter DAX: Программирование 4 07.12.2007 11:16
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Как добавить в addRange условие по "или" на контейнерные поля? Lora DAX: Программирование 9 29.11.2004 13:52
where и текстовые переменные PACCOMAXA DAX: Программирование 3 12.03.2004 16:14
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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