23.03.2004, 11:58 | #1 |
Участник
|
joined курсор
Уважаемые господа и товарищи!
Вот с какой бедой я столкнулся: Есть разработанный мной отчет, В корне DataSources два независмых датасорса: один по PurchTable с несколькими подчиненными уровнями, второй по LedgerTable без подчиненных датасорсов. Далее в корне GeneratedDesign PageHeader, с полями, использующими PurchTable и несколько секций, причем все кроме одной используют таблицы из подчиненных датасорсов к PurchTable, а одна, последняя, использует LedgerTable. В последней секции у Body перекрыт executeSection, в котором используется такой оператор: PHP код:
Начинаю спрашивать: Судя по всему вышеуказанный оператор конфликтует с использованием датасорса от PurchTable. Так ли это? Конфликт вызван тем, что оба запроса используют одинаковые таблицы или joined курсоры впринципе не совместимы при одновременном использовании? В принципе, на момент формирования последней секции отчета, запрос по PurchTable из DataSources со всеми подчиненными уже мало интересует, можно ли каким нибудь образом указать системе, что курсор по PurchTable из DataSources уже можно закрыть? Заранее благодарен.
__________________
Здесь могла быть Ваша реклама! |
|
24.03.2004, 11:06 | #2 |
----------------
|
Если еще не поздно
"joined курсор" где-то на форуме обсуждался
Могу предложить такие решения 1. В executeSection объявить другой курсор PurchTable _purchTable и его использовать в запросе. Этот метод мне кажется более правильным и наглядным. 2. Перед запросом вставить purchTable.clear() |
|
25.03.2004, 09:43 | #3 |
Участник
|
Конечно поздно
Уже перенес while select в init класса отчета, что даже оптимальнее, но все равно спасибо. Чтобы довнести полную ясность: Метод №1 замечательно действует, нужный результат достагается. В методе №2 PurchTable.clear не срабатывает на уровне компиляции (синтаксическая ошибка).
__________________
Здесь могла быть Ваша реклама! |
|
25.03.2004, 10:27 | #4 |
Участник
|
Табличную переменную проще очищать командой:
purchTable = null; |
|
25.03.2004, 10:43 | #5 |
Участник
|
Немого не в тему....
Символ подчеркивания в начале наименования переменной должен использоваться ТОЛЬКО при наименовании формальных параметров.
Изучайте стандарты разработки. |
|
25.03.2004, 11:01 | #6 |
Участник
|
Немного позанудствую :
PurchTable = null; не пройдет (как и PurchTable.clear()), если табличную переменную явно не объявить в методе. А ситуация была именно с использованием в запросе уже определенного в отчете DataSource
__________________
Здесь могла быть Ваша реклама! |
|
|
|