| // +----------------------------------------------------------------------+ // // $Id: metabase_wrapper.php,v 1.50.4.1 2004/01/08 13:43:02 lsmith Exp $ // MDB::loadFile('Date'); /** * Wrapper that makes MDB behave like Metabase * * @package MDB * @category Database * @author Lukas Smith */ $lob_error = ''; function MetabaseSetupDatabase($arguments, &$database) { _convertArguments($arguments, $dsninfo, $options); $db =& MDB::connect($dsninfo, $options); if (MDB::isError($db) || !is_object($db)) { $database = 0; return($db->getMessage()); } $database = $db->database; return(''); } function MetabaseSetupDatabaseObject($arguments, &$db) { _convertArguments($arguments, $dsninfo, $options); $db =& MDB::connect($dsninfo, $options); if (MDB::isError($db) || !is_object($db)) { return($db->getMessage()); } return(''); } function _convertArguments($arguments, &$dsninfo, &$options) { if (isset($arguments['Type'])) { $dsninfo['phptype'] = $arguments['Type']; } if (isset($arguments['User'])) { $dsninfo['username'] = $arguments['User']; } if(isset($arguments['Password'])) { $dsninfo['password'] = $arguments['Password']; } if(isset($arguments['Host'])) { $dsninfo['hostspec'] = $arguments['Host']; } if(isset($arguments['Options']['Port'])) { $dsninfo['port'] = $arguments['Options']['Port']; unset($arguments['Options']['Port']); } if (isset($arguments['Persistent'])) { $options['persistent'] = TRUE; } if(isset($arguments['Debug'])) { $options['debug'] = $arguments['Debug']; } if(isset($arguments['DecimalPlaces'])) { $options['decimal_places'] = $arguments['DecimalPlaces']; } if(isset($arguments['LOBBufferLength'])) { $options['LOBbufferlength'] = $arguments['LOBBufferLength']; } if(isset($arguments['LogLineBreak'])) { $options['loglinebreak'] = $arguments['LogLineBreak']; } $options['seqname_format'] = '_sequence_%s'; if(isset($arguments['Options']) && is_array($arguments['Options'])) { $options = array_merge($options, $arguments['Options']); } } function MetabaseCloseSetup($database) { global $_MDB_databases; $_MDB_databases[$database]->disconnect(); unset($_MDB_databases[$database]); } function MetabaseQuery($database, $query) { global $_MDB_databases; $result = $_MDB_databases[$database]->query($query); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('Query', $result->getMessage()); return(0); } else { return($result); } } function MetabaseQueryField($database, $query, &$field, $type = 'text') { global $_MDB_databases; $result = $_MDB_databases[$database]->queryOne($query, $type); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QueryField', $result->getMessage()); return(0); } else { $field = $result; return(1); } } function MetabaseQueryRow($database, $query, &$row, $types = '') { global $_MDB_databases; $result = $_MDB_databases[$database]->queryRow($query, $types); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QueryRow', $result->getMessage()); return(0); } else { $row = $result; return(1); } } function MetabaseQueryColumn($database, $query, &$column, $type = 'text') { global $_MDB_databases; $result = $_MDB_databases[$database]->queryCol($query, $type); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QueryColumn', $result->getMessage()); return(0); } else { $column = $result; return(1); } } function MetabaseQueryAll($database, $query, &$all, $types = '') { global $_MDB_databases; $result = $_MDB_databases[$database]->queryAll($query, $types); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QueryAll', $result->getMessage()); return(0); } else { $all = $result; return(1); } } function MetabaseReplace($database, $table, &$fields) { global $_MDB_databases; for($count = count($fields), reset($fields), $field = 0; $field < $count; next($fields), $field++) { $name = key($fields); if(!isset($fields[$name]['Type'])) { $fields[$name]['Type'] = 'text'; } } $result = $_MDB_databases[$database]->replace($table, $fields); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('Replace', $result->getMessage()); return(0); } else { return(1); } } function MetabasePrepareQuery($database, $query) { global $_MDB_databases; $result = $_MDB_databases[$database]->prepareQuery($query); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('PrepareQuery', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFreePreparedQuery($database, $prepared_query) { global $_MDB_databases; $result = $_MDB_databases[$database]->freePreparedQuery($prepared_query); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FreePreparedQuery', $result->getMessage()); return(0); } else { return($result); } } function MetabaseExecuteQuery($database, $prepared_query) { global $_MDB_databases; $result = $_MDB_databases[$database]->executeQuery($prepared_query); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ExecuteQuery', $result->getMessage()); return(0); } else { return($result); } } function MetabaseQuerySet($database, $prepared_query, $parameter, $type, $value, $is_null = 0, $field = '') { global $_MDB_databases; $result = $_MDB_databases[$database]->setParam($prepared_query, $parameter, $type, $value, $is_null, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySet', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetNull($database, $prepared_query, $parameter, $type) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamNull($prepared_query, $parameter, $type); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetNull', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetText($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamText($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetText', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetCLOB($database, $prepared_query, $parameter, $value, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamClob($prepared_query, $parameter, $value, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetCLOB', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetBLOB($database, $prepared_query, $parameter, $value, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamBlob($prepared_query, $parameter, $value, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetBLOB', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetInteger($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamInteger($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetInteger', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetBoolean($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamBoolean($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetBoolean', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetDate($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamDate($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetDate(', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetTimestamp($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamTimestamp($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetTimestamp', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetTime($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamTime($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetTime', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetFloat($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamFloat($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetFloat', $result->getMessage()); return(0); } else { return(1); } } function MetabaseQuerySetDecimal($database, $prepared_query, $parameter, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->setParamDecimal($prepared_query, $parameter, $value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('QuerySetDecimal', $result->getMessage()); return(0); } else { return(1); } } function MetabaseAffectedRows($database, &$affected_rows) { global $_MDB_databases; $result = $_MDB_databases[$database]->affectedRows(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('AffectedRows', $result->getMessage()); return(0); } else { $affected_rows = $result; return(1); } } function MetabaseFetchResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetch($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchCLOBResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchClob($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchCLOBResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchBLOBResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchBlob($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchBLOBResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseDestroyResultLOB($database, $lob) { global $_MDB_databases; $result = $_MDB_databases[$database]->_destroyResultLob($lob); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DestroyResultLOB', $result->getMessage()); return(0); } else { return(1); } } function MetabaseEndOfResultLOB($database, $lob) { global $_MDB_databases; $result = $_MDB_databases[$database]->endOfResultLob($lob); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('EndOfResultLOB', $result->getMessage()); return(0); } else { return($result); } } function MetabaseReadResultLOB($database, $lob, &$data, $length) { global $_MDB_databases; $result = $_MDB_databases[$database]->_readResultLob($lob, $data, $length); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ReadResultLOB', $result->getMessage()); return(0); } else { return(1); } } function MetabaseResultIsNull($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->resultIsNull($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ResultIsNull', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchDateResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchDate($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchDateResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchTimestampResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchTimestamp($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchTimestampResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchTimeResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchTime($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchTimeResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchBooleanResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchBoolean($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchBooleanResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchFloatResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchFloat($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchFloatResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchDecimalResult($database, $result, $row, $field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchDecimal($result, $row, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchDecimalResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseFetchResultField($database, $result, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchOne($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchResultField', $result->getMessage()); return(0); } else { $field = $result; return(1); } } function MetabaseFetchResultArray($database, $result, &$array, $row) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchInto($result, MDB_FETCHMODE_ORDERED, $row); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchResultArray', $result->getMessage()); return(0); } else { $array = $result; return(1); } } function MetabaseFetchResultRow($database, $result, &$row) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchRow($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchResultRow', $result->getMessage()); return(0); } else { $row = $result; return(1); } } function MetabaseFetchResultColumn($database, $result, &$column) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchCol($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchResultColumn', $result->getMessage()); return(0); } else { $column = $result; return(1); } } function MetabaseFetchResultAll($database, $result, &$all) { global $_MDB_databases; $result = $_MDB_databases[$database]->fetchAll($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FetchResultAll', $result->getMessage()); return(0); } else { $all = $result; return(1); } } function MetabaseNumberOfRows($database, $result) { global $_MDB_databases; $result = $_MDB_databases[$database]->numRows($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('NumberOfRows', $result->getMessage()); return(0); } else { return($result); } } function MetabaseNumberOfColumns($database, $result) { global $_MDB_databases; $result = $_MDB_databases[$database]->numCols($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('NumberOfColumns', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetColumnNames($database, $result, &$column_names) { global $_MDB_databases; $result = $_MDB_databases[$database]->getColumnNames($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetColumnNames', $result->getMessage()); return(0); } else { $column_names = $result; return(1); } } function MetabaseSetResultTypes($database, $result, &$types) { global $_MDB_databases; $result = $_MDB_databases[$database]->setResultTypes($result, $types); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('SetResultTypes', $result->getMessage()); return(0); } else { return(1); } } function MetabaseFreeResult($database, $result) { global $_MDB_databases; $result = $_MDB_databases[$database]->freeResult($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('FreeResult', $result->getMessage()); return(0); } else { return(1); } } function MetabaseError($database) { global $_MDB_databases; $result = $_MDB_databases[$database]->error(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('Error', $result->getMessage()); return(0); } else { return(1); } } function MetabaseSetErrorHandler($database, $function) { global $_MDB_databases; $result = $_MDB_databases[$database]->setErrorHandler($function); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('SetErrorHandler', $result->getMessage()); return(0); } else { return(1); } } function MetabaseCreateDatabase($database, $name) { global $_MDB_databases; $result = $_MDB_databases[$database]->createDatabase($name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('CreateDatabase', $result->getMessage()); return(0); } else { return(1); } } function MetabaseDropDatabase($database, $name) { global $_MDB_databases; $result = $_MDB_databases[$database]->dropDatabase($name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DropDatabase', $result->getMessage()); return(0); } else { return(1); } } function MetabaseSetDatabase($database, $name) { global $_MDB_databases; $result = $_MDB_databases[$database]->setDatabase($name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('SetDatabase', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetIntegerFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getIntegerDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetIntegerFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetTextFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTextDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTextFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetCLOBFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getClobDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetCLOBFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetBLOBFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getBlobDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetBLOBFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetBooleanFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getBooleanDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetBooleanFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetDateFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getDateDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetDateFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetTimestampFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTimestampDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTimestampFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetTimeFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTimeDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTimeFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetFloatFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getFloatDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetFloatFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetDecimalFieldTypeDeclaration($database, $name, &$field) { global $_MDB_databases; $result = $_MDB_databases[$database]->getDecimalDeclaration($name, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetDecimalFieldTypeDeclaration', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetTextFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTextValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTextFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetBooleanFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getBooleanValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetBooleanFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetDateFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getDateValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetDateFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetTimestampFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTimestampValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTimestampFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetTimeFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTimeValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTimeFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetFloatFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getFloatValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetFloatFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseGetDecimalFieldValue($database, $value) { global $_MDB_databases; $result = $_MDB_databases[$database]->getDecimalValue($value); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetDecimalFieldValue', $result->getMessage()); return(0); } else { return($result); } } function MetabaseSupport($database, $feature) { global $_MDB_databases; $result = $_MDB_databases[$database]->support($feature); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('Support', $result->getMessage()); return(0); } else { return($result); } } function MetabaseCreateTable($database, $name, &$fields) { global $_MDB_databases; $result = $_MDB_databases[$database]->createTable($name, $fields); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('CreateTable', $result->getMessage()); return(0); } else { return(1); } } function MetabaseDropTable($database, $name) { global $_MDB_databases; $result = $_MDB_databases[$database]->dropTable($name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DropTable', $result->getMessage()); return(0); } else { return(1); } } function MetabaseAlterTable($database, $name, &$changes, $check = 0) { global $_MDB_databases; $result = $_MDB_databases[$database]->alterTable($name, $changes, $check); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('AlterTable', $result->getMessage()); return(0); } else { return(1); } } function MetabaseListTables($database, &$tables) { global $_MDB_databases; $result = $_MDB_databases[$database]->listTables(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ListTables', $result->getMessage()); return(0); } else { $tables = $result; return(1); } } function MetabaseListTableFields($database, $table, &$fields) { global $_MDB_databases; $result = $_MDB_databases[$database]->listTableFields($table); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ListTableFields', $result->getMessage()); return(0); } else { $fields = $result; return(1); } } function MetabaseGetTableFieldDefinition($database, $table, $field, &$definition) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTableFieldDefinition($table, $field); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTableFieldDefinition', $result->getMessage()); return(0); } else { $definition = $result[0]; return(1); } } function MetabaseCreateSequence($database, $name, $start) { global $_MDB_databases; $result = $_MDB_databases[$database]->createSequence($name, $start); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('CreateSequence', $result->getMessage()); return(0); } else { return(1); } } function MetabaseDropSequence($database, $name) { global $_MDB_databases; $result = $_MDB_databases[$database]->dropSequence($name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DropSequence', $result->getMessage()); return(0); } else { return(1); } } function MetabaseGetSequenceNextValue($database, $name, &$value) { global $_MDB_databases; $result = $_MDB_databases[$database]->nextId($name, FALSE); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetSequenceNextValue', $result->getMessage()); return(0); } else { $value = $result; return(1); } } function MetabaseGetSequenceCurrentValue($database, $name, &$value) { global $_MDB_databases; $result = $_MDB_databases[$database]->currId($name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetSequenceCurrentValue', $result->getMessage()); return(0); } else { $value = $result; return(1); } } function MetabaseListSequences($database, &$sequences) { global $_MDB_databases; $result = $_MDB_databases[$database]->listSequences(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ListSequences', $result->getMessage()); return(0); } else { $sequences = $result; return(1); } } function MetabaseGetSequenceDefinition($database, $sequence, &$definition) { global $_MDB_databases; $result = $_MDB_databases[$database]->getSequenceDefinition($sequence); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetSequenceDefinition', $result->getMessage()); return(0); } else { $definition = $result; return(1); } } function MetabaseAutoCommitTransactions($database, $auto_commit) { global $_MDB_databases; $result = $_MDB_databases[$database]->autoCommit($auto_commit); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('AutoCommitTransactions', $result->getMessage()); return(0); } else { return(1); } } function MetabaseCommitTransaction($database) { global $_MDB_databases; $result = $_MDB_databases[$database]->commit(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('CommitTransaction', $result->getMessage()); return(0); } else { return(1); } } function MetabaseRollbackTransaction($database) { global $_MDB_databases; $result = $_MDB_databases[$database]->rollback(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('RollbackTransaction', $result->getMessage()); return(0); } else { return($result); } } function MetabaseCreateIndex($database, $table, $name, $definition) { global $_MDB_databases; $result = $_MDB_databases[$database]->createIndex($table, $name, $definition); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('CreateIndex', $result->getMessage()); return(0); } else { return(1); } } function MetabaseDropIndex($database, $table, $name) { global $_MDB_databases; $result = $_MDB_databases[$database]->dropIndex($table, $name); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DropIndex', $result->getMessage()); return(0); } else { return(1); } } function MetabaseListTableIndex($database, $table, &$index) { global $_MDB_databases; $result = $_MDB_databases[$database]->listTableIndex($table); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('ListTableIndex', $result->getMessage()); return(0); } else { $index = $result; return(1); } } function MetabaseGetTableIndexDefinition($database, $table, $index, &$definition) { global $_MDB_databases; $result = $_MDB_databases[$database]->getTableIndexDefinition($table, $index); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('GetTableIndexDefinition', $result->getMessage()); return(0); } else { $definition = $result; return(1); } } function MetabaseNow() { return(MDB_Date::mdbNow()); } function MetabaseToday() { return(MDB_Date::mdbToday()); } function MetabaseTime() { return(MDB_Date::mdbTime()); } function MetabaseSetSelectedRowRange($database, $first, $limit) { global $_MDB_databases; $result = $_MDB_databases[$database]->setSelectedRowRange($first, $limit); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('SetSelectedRowRange', $result->getMessage()); return(0); } else { return(1); } } function MetabaseEndOfResult($database, $result) { global $_MDB_databases; $result = $_MDB_databases[$database]->endOfResult($result); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('EndOfResult', $result->getMessage()); return(0); } else { return($result); } } function MetabaseCaptureDebugOutput($database, $capture) { global $_MDB_databases; $result = $_MDB_databases[$database]->captureDebugOutput($capture); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('CaptureDebugOutput', $result->getMessage()); return(0); } else { return(1); } } function MetabaseDebugOutput($database) { global $_MDB_databases; $result = $_MDB_databases[$database]->debugOutput(); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DebugOutput', $result->getMessage()); return(0); } else { return($result); } } function MetabaseDebug($database, $message) { global $_MDB_databases; $result = $_MDB_databases[$database]->debug($message); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('Debug', $result->getMessage()); return(0); } else { return(1); } } function MetabaseShutdownTransactions() { _shutdownTransactions(); } function MetabaseDefaultDebugOutput($database, $message) { global $_MDB_databases; $result = $_MDB_databases[$database]->defaultDebugOutput($_MDB_databases[$database], $message); if (MDB::isError($result)) { $_MDB_databases[$database]->setError('DefaultDebugOutput', $result->getMessage()); return(0); } else { return(1); } } function MetabaseCreateLOB(&$arguments, &$lob) { global $_MDB_databases; $args = $arguments; $args['Database'] = $_MDB_databases[$arguments['Database']]; $result = $_MDB_databases[$arguments['Database']]->createLob($args); $args['Database'] = $arguments['Database'] ; if (MDB::isError($result)) { global $lob_error; $lob_error = $result->getMessage(); return(0); } else { $lob = $result; return(1); } } function MetabaseDestroyLOB($lob) { global $_MDB_lobs; $result = $_MDB_lobs[$lob]->database->destroyLob($lob); if (MDB::isError($result)) { global $lob_error; $lob_error = $result->getMessage(); return(0); } else { return(1); } } function MetabaseEndOfLOB($lob) { global $_MDB_lobs; $result = $_MDB_lobs[$lob]->database->endOfLob($lob); if (MDB::isError($result)) { global $lob_error; $lob_error = $result->getMessage(); return(0); } else { return($result); } } function MetabaseReadLOB($lob, &$data, $length) { global $_MDB_lobs; $result = $_MDB_lobs[$lob]->database->readLob($lob, $data, $length); if (MDB::isError($result)) { global $lob_error; $lob_error = $result->getMessage(); return(0); } else { return($result); } } function MetabaseLOBError($lob) { global $lob_error; return($lob_error); } class metabase_manager_class { var $MDB_manager_object; var $fail_on_invalid_names = 1; var $error = ''; var $warnings = array(); var $database = 0; var $database_definition = array( 'name' => '', 'create' => 0, 'TABLES' => array() ); function metabase_manager_class() { $this->MDB_manager_object =& new MDB_Manager; $this->MDB_manager_object->fail_on_invalid_names =& $this->fail_on_invalid_names; $this->MDB_manager_object->error =& $this->error; $this->MDB_manager_object->warnings =& $this->warnings; $this->MDB_manager_object->database_definition =& $this->database_definition; } function SetupDatabase(&$arguments) { _convertArguments($arguments, $dsninfo, $options); $result = $this->MDB_manager_object->connect($dsninfo, $options); if (MDB::isError($result)) { return($result->getMessage()); } $this->database = $this->MDB_manager_object->database->database; return(1); } function CloseSetup() { $result = $this->MDB_manager_object->disconnect(); if (MDB::isError($result)) { return(0); } else { return(1); } } function GetField(&$field, $field_name, $declaration, &$query) { if($declaration) { $result = $this->MDB_manager_object->database->getFieldDeclaration($field, $field_name, $declaration); } else { $result = $field_name; } if (MDB::isError($result)) { return(0); } else { $query = $result; return(1); } } function GetFieldList($fields, $declaration, &$query_fields) { if($declaration) { $result = $this->MDB_manager_object->database->getFieldDeclarationList($fields); } else { for(reset($fields), $i = 0; $field_number < count($fields); $i++, next($fields)) { if ($i > 0) { $query_fields .= ', '; } $result .= key($fields); } } if (MDB::isError($result)) { return(0); } else { $query_fields = $result; return(1); } } function GetFields($table, &$fields) { $result = $this->MDB_manager_object->database->getFieldDeclarationList($this->database_definition['TABLES'][$table]['FIELDS']); if (MDB::isError($result)) { return(0); } else { $fields = $result; return(1); } } function CreateTable($table_name, $table) { $result = $this->MDB_manager_object->_createTable($table_name, $table); if (MDB::isError($result)) { return(0); } else { return(1); } } function DropTable($table_name) { $result = $this->MDB_manager_object->_dropTable($table_name); if (MDB::isError($result)) { return(0); } else { return(1); } } function CreateSequence($sequence_name, $sequence, $created_on_table) { $result = $this->MDB_manager_object->createSequence($sequence_name, $sequence, $created_on_table); if (MDB::isError($result)) { return(0); } else { return(1); } } function DropSequence($sequence_name) { $result = $this->MDB_manager_object->_dropSequence($sequence_name); if (MDB::isError($result)) { return(0); } else { return(1); } } function CreateDatabase() { $result = $this->MDB_manager_object->_createDatabase(); if (MDB::isError($result)) { return(0); } else { return(1); } } function AddDefinitionChange(&$changes, $definition, $item, $change) { $result = $this->MDB_manager_object->_addDefinitionChange($changes, $definition, $item, $change); if (MDB::isError($result)) { return(0); } else { return(1); } } function CompareDefinitions(&$previous_definition, &$changes) { $result = $this->MDB_manager_object->_compareDefinitions($previous_definition); if (MDB::isError($result)) { return(0); } else { $changes = $result; return(1); } } function AlterDatabase(&$previous_definition, &$changes) { $result = $this->MDB_manager_object->_alterDatabase($previous_definition, $changes); if (MDB::isError($result)) { return(0); } else { return(1); } } function EscapeSpecialCharacters($string) { $result = $this->MDB_manager_object->_escapeSpecialCharacters($string); if (MDB::isError($result)) { return(0); } else { return($result); } } function DumpSequence($sequence_name, $output, $eol, $dump_definition) { $result = $this->MDB_manager_object->_dumpSequence($sequence_name, $output, $eol, $dump_definition); if (MDB::isError($result)) { return(0); } else { return(1); } } function DumpDatabase($arguments) { $result = $this->MDB_manager_object->dumpDatabase($arguments); if (MDB::isError($result)) { return(0); } else { return(1); } } function ParseDatabaseDefinitionFile($input_file, &$database_definition, &$variables, $fail_on_invalid_names = 1) { $result = $this->MDB_manager_object->parseDatabaseDefinitionFile($input_file, $variables, $fail_on_invalid_names); if (MDB::isError($result)) { return(0); } else { $database_definition = $result; return(1); } } function DumpDatabaseChanges(&$changes) { $result = $this->MDB_manager_object->_debugDatabaseChanges($changes); if (MDB::isError($result)) { return(0); } else { return(1); } } function UpdateDatabase($current_schema_file, $previous_schema_file, &$arguments, &$variables) { _convertArguments($arguments, $dsninfo, $options); $result = $this->MDB_manager_object->connect($dsninfo, $options); if (MDB::isError($result)) { return($result); } $result = $this->MDB_manager_object->updateDatabase($current_schema_file, $previous_schema_file, $variables); if (MDB::isError($result)) { return($result->getMessage()); } $this->database = $this->MDB_manager_object->database->database; return(1); } function DumpDatabaseContents($schema_file, &$setup_arguments, &$dump_arguments, &$variables) { $result = $this->MDB_manager_object->_dumpDatabaseContents($schema_file, $setup_arguments, $dump_arguments, $variables); if (MDB::isError($result)) { return(0); } else { $database_definition = $result; return($result); } } function GetDefinitionFromDatabase() { $result = $this->MDB_manager_object->getDefinitionFromDatabase(); if (MDB::isError($result)) { return(0); } else { return(1); } } }; ?>