function olc_db_connect_installer($server, $username, $password, $link = 'db_link')
{
    if (!defined('USE_ADODB')) {
        define('USE_ADODB', false);
    }
    if (USE_ADODB === true) {
        include_once ADMIN_PATH_PREFIX . 'adodb/adodb.inc.php';
        /*
        define('ADODB_FETCH_DEFAULT',0);
        define('ADODB_FETCH_NUM',1);
        define('ADODB_FETCH_ASSOC',2);
        define('ADODB_FETCH_BOTH',3);
        */
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
        if (!defined('ADOBD_DB_TYPE')) {
            define('ADOBD_DB_TYPE', 'mysql');
        }
        ${$link} = NewADOConnection(ADOBD_DB_TYPE);
        if (${$link}) {
            if (USE_PCONNECT == TRUE_STRING_S) {
                ${$link}->PConnect($server, $username, $password, $database);
            } else {
                ${$link}->Connect($server, $username, $password, $database);
            }
            if (${$link}->IsConnected()) {
            } else {
                $error = "Kann keine Verbindung zur Datenbank '" . $database . "' auf Server '" . $server . "' herstellen!";
            }
        } else {
            $error = "Fehler bei 'NewADOConnection' mit ADOBD_DB_TYPE='" . ADOBD_DB_TYPE . "'";
        }
        if ($error) {
            die('olc_db_connect_installer -- ' . $error);
        }
    } else {
        global ${$link}, $db_error;
        $db_error = false;
        if (!$server) {
            $db_error = 'No Server selected.';
            return false;
        }
        ${$link} = @mysql_connect($server, $username, $password) or $db_error = mysql_error();
        if (!$db_error) {
            $mysql_version = trim(mysql_get_server_info());
            if (substr($mysql_version, 0, 1) > '4') {
                require_once DIR_FS_INC . 'olc_db_query.inc.php';
                olc_db_query_installer("SET SESSION sql_mode=''");
            }
        }
    }
    return ${$link};
}
function olc_db_test_create_db_permission($database)
{
    global $db_error;
    $db_created = false;
    $db_error = false;
    if ($database) {
        if (!$db_error) {
            if (!@olc_db_select_db($database)) {
                $db_created = true;
                if (!@olc_db_query_installer('create database ' . $database)) {
                    $db_error = true;
                }
            } else {
                $db_error = true;
            }
            if (!$db_error) {
                if (@olc_db_select_db($database)) {
                    if (@olc_db_query_installer('create table temp ( temp_id int(5) )')) {
                        if (@olc_db_query_installer('drop table temp')) {
                            if ($db_created) {
                                if (@olc_db_query_installer('drop database ' . $database)) {
                                } else {
                                    $db_error = true;
                                }
                            }
                        } else {
                            $db_error = true;
                        }
                    } else {
                        $db_error = true;
                    }
                } else {
                    $db_error = true;
                }
            }
        }
        if ($db_error) {
            if (USE_ADODB === true) {
                global ${$link};
                $db_error = ${$link}->ErrorMsg();
            } else {
                $db_error = mysql_error();
            }
            return false;
        } else {
            return true;
        }
    } else {
        $db_error = 'Keine Datenbank gewählt.';
        return false;
    }
}