Методические указания к выполнению лабораторных и курсовой работ ЙошкарОла 2007
Скачать 0.8 Mb.
|
Постраничный вывод и ограничение SELECT-запросовВообще-то не все базы данных умеют делать запросы типа: SELECT * FROM tab LIMIT 0, 10 а все те, которые умеют, делают это по разному. Класс adodb сам может делать ограниченные выборки, составляя правильные SQL-запросы под указанную БД, поддерживающую лимитированные SELECT-запросы $res = $db->SelectLimit("SELECT * FROM tab", 10, 0); ?> Метод $db->SelectLimit() сам построит правильный SQL-запрос. На основе этого метода в ADODB работают функции для постраничной выборки:
Метод $db->PageExecute() кроме простого LIMIT-запроса делает автоматически еще и запрос типа: SELECT COUNT(*) FROM tab Таким образом узнается, сколько всего по данному запросу найдено строк. Это количество можно узнать с помощью метода: $res->MaxRecordCount(); Также для управления постраничным выводом есть следующие методы: $res->AbsolutePage() — возвращает текущую страницу $res->AtFirstPage() — возвращает true если текущая страница — первая $res->AtLastPage() — возвращает true если текущая страница — последняя $res->LastPageNo() — возвращает номер последней страницы 2. Генерирование INSERT/UPDATE запросовПример:
Идея данного метода состоит в том, чтобы все данные, которые нужно вставить, необходимо записать в ассоциативный массив. Сделать запрос к БД чтобы получить имена полей таблицы и сконструировать SQL-запрос по этим данным. 3. Работа с транзакциямиПример:
Метод $db->CompleteTrans(); проверит, были ли ошибки и если так — сделает откат. ADODB имеет еще и другие функции для работы с транзакциями, но они устарели и разработчики ADODB рекомендуют использовать этот вариант. 4. ПоследовательностиЧасто при работе с таблицами каждой записи нужно присвоить уникальный идентификатор, который потом используется в качестве первичного ключа. Но не все СУБД поддерживают такую возможность. ADODB эмулирует эту возможность почти для всех СУБД. На практике это выглядит примерно так:
Метод $db->GenID() создает последовательность site_users (если она до этого не была создана) и возвращает значение на единицу больше чем текущее значение последовательности. 5. Кеширование запросовADODB поддерживает серверное кеширование запросов. Суть в том, что при первом выполнении запроса его результаты заносятся в кеш-файл. При последующем таком же запросе (если кеш-файл не устарел) данные будут браться из файла. Пример:
По умолчанию время жизни кеш-файлов — 1 час. Это время можно изменить 2-мя путями:
|