XX. DB++ functions

Warning

This module is EXPERIMENTAL. That means, that the behaviour of these functions, these function names, in concreto ANYTHING documented here can change in a future release of PHP WITHOUT NOTICE. Be warned, and use this module at your own risk.

Experimental support for db++ database

This paper describes the the db++ extension which enables PHP to access db++ relation files through all of the search and update methods available in the client/server "C" library interface of db++ and to read and process the output of a db++ query.

Requirenments

??? Download where

Installation

Creation and installation of this extension requires the db++ client libraries and header files to be installed on your system as described above. You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default path/usr/dbplus/. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

db++ error codes

Table 1. db++ error codes

PHP Constantdb++ constantmeaning
DBPLUS_ERR_NOERRERR_NOERRNull error condition
DBPLUS_ERR_DUPLICATEERR_DUPLICATETried to insert a duplicate tuple
DBPLUS_ERR_EOSCANERR_EOSCANEnd of scan from rget()
DBPLUS_ERR_EMPTYERR_EMPTYRelation is empty (server)
DBPLUS_ERR_CLOSEERR_CLOSEThe server can't close
DBPLUS_ERR_WLOCKEDERR_WLOCKEDThe record is write locked
DBPLUS_ERR_LOCKEDERR_LOCKEDRelation was already locked
DBPLUS_ERR_NOLOCKERR_NOLOCKRelation cannot be locked
DBPLUS_ERR_READERR_READRead error on relation
DBPLUS_ERR_WRITEERR_WRITEWrite error on relation
DBPLUS_ERR_CREATEERR_CREATECreat() system call failed
DBPLUS_ERR_LSEEKERR_LSEEKLseek() system call failed
DBPLUS_ERR_LENGTHERR_LENGTHTuple exceeds maximum length
DBPLUS_ERR_OPENERR_OPENOpen() system call failed
DBPLUS_ERR_WOPENERR_WOPENRelation already opened for writing
DBPLUS_ERR_MAGICERR_MAGICFile is not a relation
DBPLUS_ERR_VERSIONERR_VERSIONFile is a very old relation
DBPLUS_ERR_PGSIZEERR_PGSIZERelation uses a different page size
DBPLUS_ERR_CRCERR_CRCInvalid crc in the superpage
DBPLUS_ERR_PIPEERR_PIPEPiped relation requires lseek()
DBPLUS_ERR_NIDXERR_NIDXToo many secondary indices
DBPLUS_ERR_MALLOCERR_MALLOCMalloc() call failed
DBPLUS_ERR_NUSERSERR_NUSERSError use of max users
DBPLUS_ERR_PREEXITERR_PREEXITCaused by invalid usage
DBPLUS_ERR_ONTRAPERR_ONTRAPCaused by a signal
DBPLUS_ERR_PREPROCERR_PREPROCError in the preprocessor
DBPLUS_ERR_DBPARSEERR_DBPARSEError in the parser
DBPLUS_ERR_DBRUNERRERR_DBRUNERRRun error in db
DBPLUS_ERR_DBPREEXITERR_DBPREEXITExit condition caused by prexit() * procedure
DBPLUS_ERR_WAITERR_WAITWait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLEERR_CORRUPT_TUPLEA client sent a corrupt tuple
DBPLUS_ERR_WARNING0ERR_WARNING0The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANICERR_PANICThe server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFOERR_FIFOCan't create a fifo
DBPLUS_ERR_PERMERR_PERMPermission denied
DBPLUS_ERR_TCLERR_TCLTCL_error
DBPLUS_ERR_RESTRICTEDERR_RESTRICTEDOnly two users
DBPLUS_ERR_USERERR_USERAn error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWNERR_UNKNOWN 

Table of Contents
dbplus_add — Add a tuple to a relation
dbplus_aql — Perform AQL query
dbplus_chdir — Get/Set database virtual current directory
dbplus_close — Close a relation
dbplus_curr — Get current tuple from relation
dbplus_errcode — Get error string for given errorcode or last error
dbplus_errno — Get error code for last operation
dbplus_find — Set a constraint on a relation
dbplus_first — Get first tuple from relation
dbplus_flush — Flush all changes made on a relation
dbplus_freealllocks — Free all locks held by this client
dbplus_freelock — Release write lock on tuple
dbplus_freerlocks — Free all tuple locks on given relation
dbplus_getlock — Get a write lock on a tuple
dbplus_getunique — Get a id number unique to a relation
dbplus_info — ???
dbplus_last — Get last tuple from relation
dbplus_lockrel — Request write lock on relation
dbplus_next — Get next tuple from relation
dbplus_open — Open relation file
dbplus_prev — Get previous tuple from relation
dbplus_rchperm — Change relation permissions
dbplus_rcreate
dbplus_rcrtexact
dbplus_rcrtlike
dbplus_resolve — Resolve host information for relation
dbplus_rkeys — Specify new primary key for a relation
dbplus_restorepos — ???
dbplus_ropen — Open relation file ... ???
dbplus_rquery
dbplus_rrename — Rename a relation
dbplus_rsecindex — Create a new secondary index for a relation
dbplus_runlink — Remove relation from filesystem
dbplus_rzap — Remove all tuples from relation
dbplus_savepos — ???
dbplus_setindex — ???
dbplus_setindexbynumber — ???
dbplus_sql — Perform SQL query
dbplus_tcl — Execute TCL code on server side
dbplus_tremove — Remove tuple and return new current tuple
dbplus_undo — ???
dbplus_undoprepare — ???
dbplus_unlockrel — Give up write lock on relation
dbplus_unselect — Remove a constraint from relation
dbplus_update — Update specified tuple in relation
dbplus_xlockrel — Request exclusive lock on relation
dbplus_xunlockrel — Free exclusive lock on relation