uznay-chto-hochesh.narod.ru

-сайт для интересующихся людей

Учебник - справочник по PHP.

Здесь Вы найдете что хотели

Меню сайта
Главная
Введение
Справочник языка
Возможности РНР
Функции (справочник)
Расширение РНР 4.0
F.A.Q. частые вопросы
Приложения
Алфавитный указатель
Друзья сайта
сделай сайт сам! пособие по html
изучение html и web-дизайна для новичков
Бесплатная отправка смс на все операторы
Реклама
  Любимые пошаговые рецепты любимым содержат пошаговые фото всех этапов приготовления блюд.
Назад Вперёд

XXII. Функции DB++

Предупреждение!

Это ЭКСПЕРИМЕНТАЛЬНОЕ расширение. Поведение этого расширения и имена его функций, а также всё иное, задокументированное для данного расширения, может измениться в будущих релизах РНР без уведомления. Вы предупреждены и можете использовать это расширение, под вашу ответственность.

Введение

db++, создавалась немецкой компанией Concept asa как система реляционных БД с высокой производительностью и низким расходом памяти и дискового пространства. Предоставляя SQL как дополнительный язык интерфейса, она в действительности не является SQL-БД, а предоставляет свой собственный язык запросов AQL, который больше использует реляционную алгебру, чем SQL.

Concept asa всегда интересовалась поддержкой языков открытых ресурсов, db++ имела интерфейсы вызова для Perl и Tcl уже несколько лет назад и использует Tcl как язык своих внутренних хранимых процедур.

Требования

Это расширение основано на внешних клиентских библиотеках, поэтому вы должны иметь клиент db++, установленный на системе, где вы намереваетесь использовать данное расширение.

Concept asa предоставляет db++ демо-версии и документацию для Linux, некоторых других вариантов UNIX. Имеется также версия db++ для Windows, но данное расширение его не поддерживает (пока).

Установка

Чтобы построить это расширение самостоятельно, вам необходимо иметь клиентские библиотеки db++ и header-файлы, установленные в вашей системе (они включены по умолчанию в архивы инсталяции db++). Вы должны запустить configure с опцией --with-dbplus, чтобы построить это расширение.

configure ищет клиентские библиотеки и header-файлы ниже путей по умолчанию /usr/dbplus, /usr/local/dbplus и /opt/dblus. Если вы должны установить db++ в другом месте, необходимо добавить путь установки в опции configure примерно так: --with-dbplus=/your/installation/path

Конфигурация

Это расширение не определяет никаких директив конфигурации.

Типы ресурсов

dbplus_relation

Большинство функций db++ работают с или возвращают ресурсы dbplus_relation.
dbplus_relation это дескриптор для хранимой реляции или для реляции, генерируемой как результат запроса.

Предопределённые константы

Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.

Коды ошибок db++

Таблица 1. Коды ошибок DB++
PHP-константаdb++ константа Значение
DBPLUS_ERR_NOERR (integer)ERR_NOERRОтсутствие ошибки
DBPLUS_ERR_DUPLICATE (integer)ERR_DUPLICATE Попытка вставить дублирующую пару/tuple
DBPLUS_ERR_EOSCAN (integer) ERR_EOSCANКонец сканирования от rget()
DBPLUS_ERR_EMPTY (integer) ERR_EMPTYПустая реляция (server)
DBPLUS_ERR_CLOSE (integer) ERR_CLOSEСервер не может закрыть
DBPLUS_ERR_WLOCKED (integer)ERR_WLOCKED Запись/record блокирована от записи
DBPLUS_ERR_LOCKED (integer) ERR_LOCKEDРеляция уже была блокирована
DBPLUS_ERR_NOLOCK (integer) ERR_NOLOCKРеляция не может быть блокирована
DBPLUS_ERR_READ (integer) ERR_READОшибка при чтении реляции
DBPLUS_ERR_WRITE (integer) ERR_WRITEОшибка записи в реляцию
DBPLUS_ERR_CREATE (integer) ERR_CREATEНеудача системного вызова Create()
DBPLUS_ERR_LSEEK (integer) ERR_LSEEKНеудача системного вызова Lseek()
DBPLUS_ERR_LENGTH (integer) ERR_LENGTHПара/Tuple превзошла максимальную длину
DBPLUS_ERR_OPEN (integer) ERR_OPENНеудача системного вызова Open()
DBPLUS_ERR_WOPEN (integer) ERR_WOPENРеляция уже открыта для записи
DBPLUS_ERR_MAGIC (integer) ERR_MAGICФайл не является реляцией
DBPLUS_ERR_VERSION (integer) ERR_VERSIONФайл является самой старой реляцией
DBPLUS_ERR_PGSIZE (integer) ERR_PGSIZEРеляция использует другой размер страниц
DBPLUS_ERR_CRC (integer) ERR_CRCНеверный crc в суперстранице/superpage
DBPLUS_ERR_PIPE (integer) ERR_PIPEРеляция по каналу требует lseek()
DBPLUS_ERR_NIDX (integer) ERR_NIDXСлишком много вторичных индексов
DBPLUS_ERR_MALLOC (integer) ERR_MALLOCНеудача вызова Malloc()
DBPLUS_ERR_NUSERS (integer) ERR_NUSERSОшибка использования max users
DBPLUS_ERR_PREEXIT (integer) ERR_PREEXITВызвана неверным использованием
DBPLUS_ERR_ONTRAP (integer) ERR_ONTRAPВызвана по сигналу
DBPLUS_ERR_PREPROC (integer) ERR_PREPROCОшибка препроцессора
DBPLUS_ERR_DBPARSE (integer) ERR_DBPARSEОшибка разборщика
DBPLUS_ERR_DBRUNERR (integer) ERR_DBRUNERRОшибка выполнения в db
DBPLUS_ERR_DBPREEXIT (integer) ERR_DBPREEXITусловие выхода вызвано процедурой prexit() *
DBPLUS_ERR_WAIT (integer) ERR_WAITНемного подождите (только Simple)
DBPLUS_ERR_CORRUPT_TUPLE (integer) ERR_CORRUPT_TUPLEКлиент выслал нарушенную пару
DBPLUS_ERR_WARNING0 (integer) ERR_WARNING0Утилиты Simple вычислили нефатальную ошибку, которая была исправлена
DBPLUS_ERR_PANIC (integer) ERR_PANIC Сервер не может die (закончить выполнение), но после ошибки высылает ERR_PANIC всем клиентам
DBPLUS_ERR_FIFO (integer) ERR_FIFOНе может создать fifo
DBPLUS_ERR_PERM (integer) ERR_PERMДоступ запрещён
DBPLUS_ERR_TCL (integer) ERR_TCLTCL_error
DBPLUS_ERR_RESTRICTED (integer) ERR_RESTRICTEDТолько два пользователя
DBPLUS_ERR_USER (integer) ERR_USERОшибка при использовании библиотеки программистом приложения
DBPLUS_ERR_UNKNOWN (integer) ERR_UNKNOWN 
Содержание
dbplus_add - добавляет пару/tuple в реляцию
dbplus_aql - выполняет AQL-запрос/query
dbplus_chdir - получает/устанавливает виртуальную текущую директорию базы данных
dbplus_close - закрывает реляцию
dbplus_curr - получает текущую пару из реляции
dbplus_errcode - получает строку ошибки для данного errorcode или последней ошибки
dbplus_errno - получает код ошибки последней операции
dbplus_find - устанавливает ограничение/constraint в реляции
dbplus_first - получает первую пару из реляции
dbplus_flush - зачищает все изменения, сделанные в реляции
dbplus_freealllocks - освобождает все блокировки, удерживаемые данным клиентом
dbplus_freelock - освобождает блокировку от записи пары
dbplus_freerlocks - освобождает все блокировки пар в данной реляции
dbplus_getlock - получает блокировку от записи для пары
dbplus_getunique - получает уникальный номер id для реляции
dbplus_info - ???
dbplus_last - получает последнюю пару из реляции
dbplus_lockrel - запрашивает блокировку от записи в реляции
dbplus_next - получает следующую пару реляции
dbplus_open - открывает реляционный файл
dbplus_prev - получает предыдущую пару реляции
dbplus_rchperm - изменяет права доступа к реляции
dbplus_rcreate - создаёт новую реляцию DB++
dbplus_rcrtexact - создаёт точную, но пустую копию реляции, включая индексы
dbplus_rcrtlike - создаёт пустую копию реляции с индексами по умолчанию
dbplus_resolve - разрешает host-информацию для реляции
dbplus_restorepos - ???
dbplus_rkeys - специфицирует новый первичный ключ/primary key реляции
dbplus_ropen - открывает локально реляционный файл
dbplus_rquery - выполняет локальный (сырой/raw) AQL-запрос