Можете лесно да създадете динамично обект с данни с функцията Create() на DataWindow или DataStore, като му предадете синтактично правилен източник на DataWindow (като това, което виждате, когато редактирате източника на DataWindow в IDE). Има дори функция, SyntaxFromSQL() на обекта Transaction, която ще ви помогне да изградите синтаксис от оператор SELECT, въпреки че можете да изградите този синтактичен низ, както желаете.
Проблемът, който виждам във вашия въпрос, е, че не започвате от оператор SELECT, а от обект на курсор, предаден обратно от базата данни. Не вярвам, че има поддръжка навсякъде в PB за такъв курсор. (Можете да създадете курсор във вашия PowerScript, но доколкото разбирам какво казвате, това е различно.) Така че, тъй като няма синтаксис на DataWindow, който да е съвместим с генериран от СУБД курсор, аз вярвам, че отговорът на въпроса ви в настоящия момент е, че не може да стане.
Една алтернатива, ако имате контрол над запомнената процедура, е да я промените, за да предаде обратно низа на оператора SELECT. По този начин можете не само да създадете динамично синтаксиса на DataWindow (SyntaxFromSQL()) и да генерирате DataWindow (Create()), но и ще получите по-добра производителност, тъй като DataWindow в повечето случаи ( например не когато събитие RetrieveRow е кодирано) ще извлече целия набор от данни във възможно най-малко мрежови блокове с „една“ мрежова транзакция, за разлика от курсора, който ще извлече само един ред наведнъж.
Късмет,
Тери.
person
Terry
schedule
19.04.2013