Категория
Информатика
Тип
реферат
Страницы
6 стр.
Дата
27.03.2008
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
18274.zip — 7.12 kb
  • kak-sdelat-dvunapravlennyj-zapros_18274_1.rtf — 33.94 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

Как сделать двунаправленный запрос
Евгений Каратаев
Мне давно было интересно, можно ли сделать в Cache' такой запрос, чтобы его можно было бы прокручивать назад, например что-то вроде команды, парной к Fetch, например Prior. Собственные средства Cache' почему-то не предоставляют такой возможности. Для этого я изучил характер взаимодействия sql-движка с
Cache Object Script. В результате исследований выяснилось, что это возможно, хотя и не столь гладко, как бы того хотелось. Надеюсь, читатель с пониманием отнесется к возникшей некрасивости.
Возьмем и сделаем рутину со следующим текстом:
run()
&sql(declare cur CURSOR for select ID, Name, Home
from Sample.Person order by ID asc)
&sql(open cur)
&sql(fetch cur)
&sql(close cur)
q
Скомпилируем и сохраним текст полученной int-рутины. После чего
изменим рутину следующим образом:
run()
&sql(declare cur CURSOR for select ID, Name, Home
from Sample.Person order by ID desc)
&sql(open cur)
&sql(fetch cur)
&sql(close cur)
q
И также сохраним текст полученной int-рутины. В запросе можно использовать любую имеющуюся у Вас таблицу, просто в данном случае я использовал таблицу из штатного дистрибутива.
Сличим полученные тексты int-рутин. Ничего особенно романтичного в работе
автоматического генератора не наблюдается, за исключением того, что сгенерированные тексты полностью совпадают за исключением замены операции $o() на $zp(), которые друг другу прямо противоположны по направлению. Таким образом, для реализации двунаправленной прокрутки используем оба варианта и попробуем совместить их данные, оставив и использовав коды (рутины) доступа.



Ваше мнение



CAPTCHA