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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.07.2003, 10:48   #1  
Dimitry is offline
Dimitry
Участник
 
172 / 10 (1) +
Регистрация: 07.02.2003
? While Select?
У меня следующая программа:
PHP код:
While Select Table where Table.String1 == userString
{
  ...

Где Table.String1 И userString - это переменные типа Str
В этом лучаи ругается, что контейнер и строковая перемнная не может использоваться в выражении where

Тогда я пишу
PHP код:
While Select Table
{
  if (
Table.Strig1 == userString)
  {
    ...
  }

так не обходиться вся таблица, а считывается только первая ее строка....

Помогите мне, плиз....
Зарание спасибо.
Старый 08.07.2003, 10:58   #2  
Lazy_Tiger is offline
Lazy_Tiger
NavAx
Axapta Retail User
1C
NavAx Club
 
610 / 31 (3) +++
Регистрация: 17.12.2001
Адрес: Красноярск
переменная userString должна быть такого же типа как и Table.String1, а вовсе не str - не будет ругаться

почему только первая - ХЗ, у меня вот этот код выводит всех клиентов

PHP код:
static void Job1(Args _args)
{
    
custTable   cust;
    ;
    while 
select cust
    
{
        
info(cust.AccountNum);
    }

Старый 08.07.2003, 11:04   #3  
Axapta is offline
Axapta
Участник
 
91 / 12 (1) ++
Регистрация: 21.06.2002
Адрес: Moscow
Вместо базовых типов данных рекомендуется использовать расширенные типы данных, т.е. поле Table.String1 должно иметь тип не str, а скажем LedgerAccount, тогда и userString нужно будет описать как переменную типа LedgerAccount, тогда система ругаться не будет.
В выражении where не могут использоваться контейнерные поля, а также поля типа memo и строки нефиксированной длины.
Старый 08.07.2003, 18:11   #4  
Yuri Safronov is offline
Yuri Safronov
Участник
 
140 / 55 (2) ++++
Регистрация: 21.08.2002
Адрес: Москва
Надо просто явно указать длину переменной userString.

PHP код:
static void Job1(Args _args)
{
    
InventTable invent;
    
str 10 userString;
    ;

    
select invent where invent.ItemId == userString;

Я полностью согласен с Axapta и в моём примере было бы лучше объявить переменную userString типа ItemId. Но иногда требуется и то, что описал Dimitry, тогда надо просто явно задать длину.
__________________
yurisafronov@mail.ru
skype: y.safronov
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
2 while select или join? _scorp_ DAX: Программирование 9 23.01.2009 16:02
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
gatesasbait: Reverse keyword on Select Statements Blog bot DAX Blogs 0 08.02.2008 00:10
Fred Shen: Always use recId to know if a select statement returns a record Blog bot DAX Blogs 0 28.10.2006 16:40
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43

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

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

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