|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от Narayana
... и все-таки, ничо не понимаю.
Вот, есть представления традиционной ориентации. Есть таблица в БД, есть рекордсет. Берем таблицу и с помощью оператора select набираем записи из таблицы в рекордсет. Теперь Аксапта. Есть таблица в БД. Дальше Аксапта знает про эту таблицу в БД и структуру этой таблицы держит у себя в качестве типа объекта в виде элемента АОТ. Так? Так Дальше мы объявляем переменную с типом данной таблицы. Что при этом происходит? Ничего вроде, разве что память выделяется под переменную, но не уверен, вроде бы как в Java языке происходит. Мы создаем в памяти только пустую структуру этой таблицы или уже структуру, заселенную данными? Дальше самое интересное. Применяем оператор select. Результатом его работы должен быть рекордсет. Так этот самый рекордсет куда складывается? В нашу пустую объявленную переменную или еще куда-то? оператор селект формирует запрос к БП. Если не используется noFetch то он обычно сразу же и исполняется. Результат "складывается" (в реальности все сложнее - используется буфер, и складывается не весь результат) в объявленную табличную переменную Создается впечатление, что складывается как раз в нашу же переменную. Но, это же какой-то бардак получается. То есть, объявлением переменной с типом таблицы, мы создаем копию таблицы или пустой рекордсет? Если, допустим, пустой рекордсет "r" , то странным выглядит синтаксическая конструкция "select r;", потому как, вроде бы, "r" должен быть не операндом операции select, а ее результатом. Синтаксис не я придумал, но наверное проблемы с его пониманием возникают только у .Net девеорперов. Если вы его не понимаете, то у вас скорее всего проблемы с абстрагированием и программирование вам вообще противопоказано Вот, когда мы, например, в АОТе открываем форму таблицы, где показывается содержание таблицы, что происходит? Много чего, впрочем к вышесказанному отношение имеет опосредованное И еще. Вот мы создали в АОТе таблицу. А потом используем ее, например, в качестве датасорса для датасета, используемого дальше в портале. Допустим, я хочу к тому моменту, когда таблица будет использоваться в качестве дата сорса, произвести некоторые вычисления и положить результат их в одно из полей таблицы. Какое событие нужно использовать и какой метод таблицы лучше перекрывать для размещения кода вычислений? вы хотите не это наверное, просто решили, что хотите сделать XXX через YYY и спрашиваете на форуме, как сделать YYY как в известном анекдоте. Никто так не делает в здравом уме, обновление данных вместе с выводом тупо убъет производительность, представьте, что два пользователя откроют страничку, что произойдет с блокировками в сиквеле? Последний раз редактировалось lvan; 10.11.2012 в 16:01. |
|
|
|
|
#2 |
|
Сенбернар
|
2 Narayana
Цитата:
Повторяю : - вы не умеете формулировать вопросы. Под этим подразумевается ровно то, что вы не умеете задавать вопросы так, чтобы люди, знающие предмет (в отличии от вас.. сори..) готовы были бы на этот вопрос ответить. - это ровно ваша проблема, лечится ликбезом.. книжками ) - ваши экзсерсисы на тему "а я это так вижу" - никому, кроме вас самого, неинтересны.. например, я это вижу по-другому.. и что?
__________________
Best Regards, Roman |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Сообщение от RVS
Narayana,
Повторяю : - вы не умеете формулировать вопросы. Под этим подразумевается ровно то, что вы не умеете задавать вопросы так, чтобы люди, знающие предмет (в отличии от вас.. сори..) готовы были бы на этот вопрос ответить. - это ровно ваша проблема, лечится ликбезом.. книжками ) - ваши экзсерсисы на тему "а я это так вижу" - никому, кроме вас самого, неинтересны.. например, я это вижу по-другому.. и что? Если вам не интересно, не читайте. |
|
|
|
|
#4 |
|
Сенбернар
|
Мдя... тяжелый случай
__________________
Best Regards, Roman |
|
|
|
|
#5 |
|
Участник
|
Цитата:
Увы, ни у Еременко, ни в "Аксапта изнутри", ни в хелпе по Аксапте нет слов, которые могли бы удовлетворить полностью. Эти слова есть в Development II in Microsoft Dynamics® AX 2009 и звучат они примерно так: " A table buffer: Stores complete records in a variable- Is declared like a variable – specify the table name in the declaration •- Is required when you use select commands to retrieve records •- Is declared before the select statement The following code shows a table buffer declaration: CustTable custTable; //declares a table buffer for the CustTable When a select statement result is assigned to a table buffer, the variable can be considered a subset of data from that table depending on the criteria of the search. " Оно, вроде бы, и несложно, когда уже понимаешь, о чем идет речь. А вот пока не понимаешь, то убогость хелпов не очень помогает понять всю последовательность событий, происходящих при объявлении переменной и дальнейшей работой с данными. Последний раз редактировалось Narayana; 12.11.2012 в 17:03. |
|
|
| Теги |
| query, архитектура, как правильно |
|
|
|