Exemple #1
0
function createrows($list)
{
    $fields = lx_array_merge(array(get_default_fields(), $list));
    if (array_search_bool("syncserver", $fields)) {
        $fields[] = 'oldsyncserver';
        $fields[] = 'olddeleteflag';
    }
    return $fields;
}
Exemple #2
0
function parse_sql_data()
{
    global $gbl, $sgbl, $argc, $argv;
    static $_quota_var, $_field_var;
    $_return_value = null;
    $majmin = $sgbl->__ver_major_minor;
    $trel = $sgbl->__ver_release;
    $rpath = "sql/full.lxsql";
    $pathc = "htmllib/sql/common.lxsql";
    include $rpath;
    include $pathc;
    $string = $gl_sql_string_common . "\n" . $gl_sql_string;
    $string = explode("\n", $string);
    foreach ($string as $__k => $res) {
        $res = trim($res);
        if (!$res) {
            continue;
        }
        if (char_search_beg($res, "//")) {
            continue;
        }
        $res = preg_replace('/\\s+/', " ", $res);
        if (csb($res, "#")) {
            $vl = explode(" ", $res);
            $name = array_shift($vl);
            $name = strfrom($name, "#");
            $nvl = null;
            $nnvl = null;
            foreach ($vl as $k => $qv) {
                if (csb($qv, "#")) {
                    $_t = strfrom($qv, "#");
                    $nvl = lx_array_merge(array($nvl, $_quota_var[$_t]));
                } else {
                    $nvl[] = $qv;
                }
            }
            foreach ($nvl as $qv) {
                $nnvl[] = "priv_q_" . $qv;
                $nnvl[] = "used_q_" . $qv;
            }
            $_quota_var[$name] = $nvl;
            $g_qvar[$name] = $nnvl;
            $list = get_class_for_table($name);
            foreach ((array) $list as $l) {
                $_quota_var[$l] = $nvl;
                $g_qvar[$l] = $nnvl;
            }
            continue;
        }
        if (csb($res, "%")) {
            $vl = explode(" ", $res);
            $name = array_shift($vl);
            $nnnnvl = null;
            foreach ($vl as $q) {
                if (csb($q, "%")) {
                    $nnnnvl = lx_array_merge(array($nnnnvl, $g_var[$q]));
                } else {
                    $nnnnvl[] = $q;
                }
            }
            $g_var[$name] = $nnnnvl;
            continue;
        }
        $list = explode(" ", $res);
        $nlist = null;
        foreach ($list as $k => $l) {
            if (csb($l, "%")) {
                $nlist = array_merge($nlist, $g_var[$l]);
            } else {
                $nlist[] = $l;
            }
        }
        //dprintr($list);
        $list = $nlist;
        $nlist = null;
        foreach ($list as $l) {
            if ($l === '__q_var') {
                if (isset($g_qvar[$list[0]])) {
                    $nlist = lx_array_merge(array($nlist, $g_qvar[$list[0]]));
                }
            } else {
                $nlist[] = $l;
            }
        }
        $list = $nlist;
        //dprintr($list);
        $name = array_shift($list);
        $fields = lx_array_merge(array(get_default_fields(), $list));
        if (array_search_bool("syncserver", $fields)) {
            $fields[] = 'oldsyncserver';
            $fields[] = 'olddeleteflag';
        }
        $fields = array_unique($fields);
        $_field_var[$name] = $fields;
        $_return_value[$name] = $fields;
    }
    foreach ($_quota_var as &$__tq) {
        $__tq = array_flip($__tq);
    }
    foreach ($_field_var as &$__tq) {
        $__tq = array_flip($__tq);
    }
    $var['quotavar'] = $_quota_var;
    $var['fieldvar'] = $_field_var;
    lfile_put_contents("__path_dbschema", serialize($var));
    return $_return_value;
}