コード例 #1
0
ファイル: rg2api.php プロジェクト: AtleH/rg2
function lockDatabase()
{
    // lock directory version based on http://docstore.mik.ua/oreilly/webprog/pcook/ch18_25.htm
    // but note mkdir returns TRUE if directory already exists!
    $locked = FALSE;
    // tidy up from possible locking errors
    if (is_dir(LOCK_DIRECTORY)) {
        // if lock directory is more than a few seconds old it wasn't deleted properly, so we'll delete it ourselves
        // not sure exactly how time changes work, but we can live with a possible twice
        // a year problem since locking is probably almost never needed
        if (time() - filemtime(LOCK_DIRECTORY) > 15) {
            unlockDatabase();
        }
    }
    if (is_dir(LOCK_DIRECTORY)) {
        // locked already by someone else
        //rg2log("Directory exists ".date("D M j G:i:s T Y", filemtime(LOCK_DIRECTORY)));
    } else {
        // try to lock it ourselves
        //rg2log("Trying to lock");
        $locked = mkdir(LOCK_DIRECTORY, 0777);
    }
    $tries = 0;
    while (!$locked && $tries < 5) {
        // wait 500ms up to 5 times trying to get a lock
        usleep(500000);
        if (is_dir(LOCK_DIRECTORY)) {
            // locked already by someone else
            $locked = FALSE;
        } else {
            // try to lock it ourselves
            $locked = mkdir(LOCK_DIRECTORY, 0777);
        }
        $tries++;
        //rg2log("Lock attempt ".$tries);
    }
    //rg2log("Lock status ".$locked);
    return $locked;
}
コード例 #2
0
function unlockDatabase($isdroptemp = true)
{
    if ($isdroptemp && $tempDBName) {
        mysql_query("DROP DATABASE IF EXISTS`" . $tempDBName . "`");
    }
    mysql_connection_insert(DATABASE);
    // Use logged into DB
    $res = mysql_query("delete from sysLocks where lck_Action='buildcrosswalks'");
    // Remove sysLock
}
// Done inserting data into all tables in temp database (or actual database if new database).
// If this spits out errors with unkonwn columns, look to see if createDefinitionsTablesOnly.sql has been brought
// up to date with the structure of populateBlankDB.sql
if ($errorCreatingTables) {
    // An error occurred while trying to create one (or more) of the tables, or inserting data into them
    if ($isNewDB) {
        echo "<br /><strong>An error occurred trying to insert data into the new database.</strong><br />";
    } else {
        echo "<br /><strong>An error occurred trying to insert the downloaded data into the temporary database.</strong><br />";
    }
    echo "This may be due to a database version mismatch, please advise the Heurist development team<br>";
    unlockDatabase();
    return;
} else {
    if (!$isNewDB) {
        // do crosswalking for exisitn database, no action for new database
        require_once "createCrosswalkTable.php";
        // offer user choice of fields to import
        unlockDatabase(false);
    }
}
コード例 #3
0
ファイル: displayFormat.php プロジェクト: rgevaert/ABCD
        case 'title':
            $dataModel = new title();
            $formatedRecords = displayTitle($dataModel, $_REQUEST["edit"], $_REQUEST["format"]);
            break;
        case 'titleplus':
            $dataModel = new titleplus();
            $formatedRecords = displayTitlePlus($dataModel, $_REQUEST["edit"]);
            break;
        case 'import':
            $formatedRecords = importFile();
            break;
        case 'reverseDB':
            $formatedRecords = reverseDatabase();
            break;
        case 'unlockDB':
            $formatedRecords = unlockDatabase();
            break;
        case 'report':
            $dataModel = new title();
            $formatedRecords = report($dataModel);
            break;
    }
}
function report($dataModel)
{
    //displayFormat.php?m=report&format=lblTitCurrColect
    //$editRequest = "178";
    //, $format
    $title = $dataModel->getRecords();
    switch ($_REQUEST['format']) {
        case 'lblTitCurrColect':