Новые книги

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями

.

shell

Для программистов-пользователей операционной системы UNIX.
Windows Server 2012 R2 Pocket Consultant: Storage, Security, & Networking is designed to be a concise and compulsively usable resource for Windows administrators, developers, and programmers, and for anyone else who wants to use the storage, networking, and security features of Windows Server 2012 R2. This is the readable resource guide that you’ll want on your desk or in your pocket at all times. The book discusses everything you need to perform core tasks. Because the focus is directed on providing you with the maximum value in a pocket-sized guide, you don’t have to wade through hundreds of pages of extraneous information to find what you’re looking for. Instead, you’ll find exactly what you need to get the job done.

Функции DB++

Учебник РНР
Назад Вперёд

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-запрос
dbplus_rrename - переименовывает реляцию
dbplus_rsecindex - создаёт в реляции новый вторичный индекс
dbplus_runlink - удаляет реляцию из файловой системы
dbplus_rzap - удаляет все пары из реляции
dbplus_savepos - ???
dbplus_setindex - ???
dbplus_setindexbynumber - ???
dbplus_sql - выполняет SQL query
dbplus_tcl - выполняет TCL-код на стороне сервера
dbplus_tremove - удаляет пару и возвращает новую текущую пару
dbplus_undo - ???
dbplus_undoprepare - ???
dbplus_unlockrel - снимает блокировку с реляции
dbplus_unselect - удаляет ограничение с реляции
dbplus_update - обновляет специфицированную пару реляции
dbplus_xlockrel - запрашивает исключительную блокировку для реляции
dbplus_xunlockrel - освобождает исключительную блокировку в реляции

НазадОглавление Вперёд
dbx_sortВверх dbplus_add