AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 02.10.2003, 14:48   #1  
Ser ist offline
Ser
NavAx
 
99 / 14 (1) ++
Registriert seit: 04.03.2002
Ort: Москва
Врем.табл.: поведение в 2-х и 3-х уровневой конф.
Привет всем!
Ax2.5Sp5

Есть модификация, в которой решается задача по "отсеиванию" лишних допустим проводок. Оптимальным показалось решение по созданию временной таблицы, ее заполнением нужной областью значений и подключением к существующему query в FormDataSource. Связывание происходило по признаку существования значения во временной таблице (ExistsJoin). Связь с постоянной таблицей.

Так повелось, что большая часть рабочих мест орг-ции работает на 2-х уровневой конфигурации. Все замечательно работало, пока не пришлось запустить ахапту в тонком клиенте.
И тут трабл: "Невозможно выбрать запись в табл. Скп . . . Временные таблицы должны быть вложенными (inner), когда вы объединяете их оператором join с постоянными таблицами".
Звучит вроде понятно, да только, во-первых, таблица и есть вложенная (не то чтобы inner, но exist точно), а, во-вторых, как объяснить прекрасное поведение без участия AOS?!

Может кто сталкивался. Вообще, неприятный осадок - столько работы
Это приговор?

С уважением, Сергей.
Alt 02.10.2003, 16:40   #2  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
временные таблицы
Не советую соединять join-ом постоянные и временные таблицы!!!
Обязяательно посмотрите профайлером какие запросы получает SQL-сервер. Сделать еще один select в цикле по производительности будет тоже самое (при правильном выборе что сверху), а по наглядности и надежности значительно лучше.

Если уж очень хочется сделать join, то обратите внимание ГДЕ создается ваша временная таблица на клиенте или сервере (где происходит первый insert)
Alt 03.10.2003, 16:05   #3  
Axapta ist offline
Axapta
Участник
 
91 / 15 (1) ++
Registriert seit: 21.06.2002
Ort: Moscow
2Ser:
Короче, Wamr хотел сказать, что джойнить с постоянными можно только временные таблицы, созданные на сервере. Я согласен с ним, что такие джойны не желательны, но иногда (обычно на формах) это нужно...

Для того чтобы временная таблица жила на сервере, я лично очень часто создаю на временной таблице статический метод initOnServer с модификатором server, который возвращает курсор:

return select firstonly имятаблицы;

Надо вызвать этот метод в init'е формы...
Alt 03.10.2003, 16:22   #4  
Ser ist offline
Ser
NavAx
 
99 / 14 (1) ++
Registriert seit: 04.03.2002
Ort: Москва
PHP-Code:
static server ARN_Table initOnServer()
{

    return 
select firstonly ARN_Table;


бранная ругань на слово select
Alt 03.10.2003, 17:17   #5  
Dron AKA andy ist offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Registriert seit: 27.03.2002
Ort: Москва
Слишком буквально
PHP-Code:
static server ARN_Table initOnServer()
{
    
ARN_Table aRN_Table;

    
select firstonly aRN_Table;
    return 
aRN_Table;

__________________
Андрей.
Alt 06.10.2003, 10:14   #6  
Ser ist offline
Ser
NavAx
 
99 / 14 (1) ++
Registriert seit: 04.03.2002
Ort: Москва
Огромное спасибо Axapta!!!
Это на самом деле гениально и просто!

Да, также согласен, поскольку много раз обсуждалось, что нежелательно сцеплять постоянные и временные таблицы, но ситуация как раз заставила. Кстати, это довольно популярная лукап форма

Предыдущий постинг нарисовал, неупев как следует обдумать, действительно в лоб.
Очевидный факт, прошу прощения, сглупил.

Получается, что таблицы, подлежащие Join должны находиться на ОДНОЙ из сторон, либо на клиенте, либо на сервере. У меня они жили раздельно...

Спасибо участникам!
Сергей.
Alt 18.01.2005, 14:20   #7  
vallys ist offline
vallys
Developer
 
146 / 108 (0) +++++
Registriert seit: 18.01.2005
? Возможно ли отобразить содержимое врем. таблицы в гриде на форме?
Привет всем!
Ax3.0Sp3

Сразу отмечу, что перед тем как написать в эту тему - просидел два дня в Аксапте с экспериментами, которые ни к чему не привели...

Описание задачи: необходимо отобразить пользователю (например, в гриде) из таблицы InventPosting номенклатуры со счетами начинающимися на 2 (3, 4, ...) + еще некоторые простые условия. Было решено организовать выборку во временную таблицу и затем отобразить либо записи врем. табл. либо объединение (join) временной и InventPosting.

Проблема: После заполнения врем. таблицы (в методе Init формы) данные не отображаютя в гриде (на настоящий момент я пытаюсь просто вывести содержимое временной таблицы). При чем через другие новые Query - QueryRun руками эти данные также никак получить не удается. Такое ощущение, что таблица ВСЕГДА создается на клиенте!!! Поведение (правильнее будет сказать - отсутствие такового) одинаковое и на тонком и на толстом клиентах...
Что я пропустил??? (кроме "правильных" курсов ) Неужели в Query нельзя использовать временные таблицы?
Alt 18.01.2005, 15:07   #8  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Вам поможет
QueryRun.setCursor(myTmpTable);
Alt 18.01.2005, 16:18   #9  
vallys ist offline
vallys
Developer
 
146 / 108 (0) +++++
Registriert seit: 18.01.2005
Zitat:
Изначально опубликовано Wamr
Вам поможет
QueryRun.setCursor(myTmpTable);
Спасибо, это действительно работает, но только если самому извлекать данные из QueryRun, созданного руками типа "new QueryRun(Query)"

А как быть с отображением временной таблицы в гриде формы?
DataSource.QueryRun().setCursor(myTmpTable) не помогает...
Alt 18.01.2005, 19:18   #10  
Ser ist offline
Ser
NavAx
 
99 / 14 (1) ++
Registriert seit: 04.03.2002
Ort: Москва
Если вставлять записи в TmpTable,
где
- TmpTable - имя dataSource - то всё должно работать.
Ровно тот же результат даст операция:
TmpTable.setTmpData(localTmpTable),
где
- TmpTable - имя dataSource,
- localTmpTable - табличная переменная, используя которую вы добавляли записи
__________________
Чудес не бывает (c), истина где-то рядом (c)...
Alt 18.01.2005, 19:37   #11  
vallys ist offline
vallys
Developer
 
146 / 108 (0) +++++
Registriert seit: 18.01.2005
Мда... Как всегда все просто...
Огромное спасибо, Ser!
Сделал, все заработало. Сам ведь наблюдал, что две переменные одного типа "временная таблица" друг с другом совсем не связаны, а про DataSource - даже и не подумал. Записывал в свою переменную и искал причину в другом месте. В отпуск значит пора...
Alt 21.12.2005, 10:51   #12  
Bars ist offline
Bars
Участник
Benutzerbild von Bars
 
312 / 14 (1) ++
Registriert seit: 04.03.2005
Ort: Москва
Вроде все делаю как сказано ... но ошибка все та же ... видимо не туда вставляю InitOnServer
на данный момент в ините формы
Alt 21.12.2005, 11:38   #13  
Bars ist offline
Bars
Участник
Benutzerbild von Bars
 
312 / 14 (1) ++
Registriert seit: 04.03.2005
Ort: Москва
извиняюсь... все работает. Руки видимо не оттуда.

Метод прописывается в ините после супер.. и вот оно счастье.
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Поведение свойства Height в отчете KiselevSA DAX: Программирование 0 31.10.2006 15:32
Непонятное поведение системы Paul_ST DAX: Администрирование 5 19.01.2006 15:31
Разные запросы в 2-х и 3-х уровневой конфигурациях. Что делать?! Anais DAX: Программирование 12 04.11.2004 12:47
Странное поведение резервирования после создания спланированной закупки. NEO DAX: Функционал 7 01.07.2004 14:03
После установки прав на группу пользователей в 3-уровневой, просматриваю еще раз..... Сергей Щербак DAX: Администрирование 3 09.04.2004 16:56

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 20:36 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.