示例#1
0
from QueryEngine import QueryEngine
from flask import flash

qe = QueryEngine()
qe.setup_default()


def login_check(username, password):
    qe.connect()
    check_acc = qe.do_query("select count(*) from log_in where UserName = '******' and Password_hash = md5('" +
                            password + "')")
    count = check_acc[0][0]
    qe.disconnect()
    if count == 1:
        #print("I am in")
        return True
    else:
        #print("wrong account")
        return False


def account_type(username, password):
    login_id = get_login(username, password)
    qe.connect()
    patient_type = qe.do_query(
        "select count(*) from patient where Patient_ID = " + str(login_id))
    doctor_type = qe.do_query(
        "select count(*) from doctor where Doctor_ID = " + str(login_id))
    staff_type = qe.do_query("select count(*) from staff where Staff_ID = " +
                             str(login_id))
示例#2
0
from QueryEngine import QueryEngine
from Minibaza import Baza, Kolekcija

QE = QueryEngine()

query = "(def osobe (bp 'test'))(def dok {'ime' 'Pero' 'prihod' 5000})(def dok2 {'ime' 'Ivo' 'prihod' 2000})(?+ osobe 'kolekcija' dok)(?+ osobe 'kolekcija' dok2)(za-svaki d (?> osobe 'kolekcija' {'prihod' 7000})(print d))(ako (> 1 2) 'rrr' (za-svaki d (?> osobe 'kolekcija' {'prihod' 1000})(print d)))"
QE.newQuery(query)

示例#3
0
def main(batchfile, dryrun=False, log=False):
    def _parse_query(sql, parameterfile):
        with open(parameterfile) as pf:
            paramdict = json.load(pf)
        parsed_sql = sql.format(**paramdict)

        return parsed_sql

    def _parse_batchfile(batchfile):
        with open(batchfile, 'r') as bf:
            batchdict = json.load(bf)
            defaultsetting = batchdict["DefaultSetting"]
            executes = batchdict["Execute"]

        return defaultsetting, executes

    def _get_targetdbinfo(dbinfofile, dbinfo):
        with open(dbinfofile, "r") as di:
            dbs = yaml.safe_load(di)
        dbdict = dbs[dbinfo]

        return dbdict

    def _get_query_from_file(sqlfile):
        with open(sqlfile, 'r') as sqlf:
            query = sqlf.read()

        return query

    def _overwritesetting(defaultsetting, execute):
        defalultkeys = defaultsetting.keys()
        for dkey in defalultkeys:
            if dkey not in execute.keys():
                execute[dkey] = defaultsetting[dkey]

        return execute

    if log:
        if not os.path.exists(logpath):
            os.makedirs(logpath)

        now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
        logname = logpath + 'qe_' + now + '.log'
        loggerfh = logging.FileHandler(logname)
        loggerfh.setLevel(logging.INFO)
        loggerfh.setFormatter(logging.Formatter(formatter))
        logger.addHandler(loggerfh)
        logger.info('Logfile Name : %s', logname)

    logger.info('LOGGINIG : %s', log)
    logger.info('BATCH FILE : %s', batchfile)
    logger.info('DRYRUNMODE : %s', dryrun)

    defautsetting, executes = _parse_batchfile(batchfile)

    for step, execute in executes.items():
        logger.info('QUERYSTEP : %i', int(step))
        setting = _overwritesetting(defautsetting, execute)
        dbinfofile = setting["DatabaseInfoFile"]
        engine = setting["QueryEngine"]
        dbinfo = setting["DatabaseInfo"]
        sqlfile = setting["SQLFile"]

        logger.info('DBinfofile : %s', dbinfofile)
        logger.info('Engine : %s', engine)
        logger.info('DBInfo : %s', dbinfo)
        logger.info('SQLFile : %s', sqlfile)

        parameter = setting["Parameter"] if "Parameter" in setting.keys(
        ) else None
        option = setting["Option"] if "Option" in setting.keys() else None

        logger.info('ParameterFile : %s', parameter)
        logger.info('Option : %s', option)

        targetdbdict = _get_targetdbinfo(dbinfofile, dbinfo)

        qe = QueryEngine(engine, targetdbdict)

        query = _get_query_from_file(sqlfile)

        if parameter != None:
            query = _parse_query(query, parameter)

        logger.info('Execute Query')
        logger.info('\n' + query)

        # Skip connection & execute if dryrun mode.
        if dryrun:
            continue

        try:
            qe.connect()
        except Exception as e:
            logger.error(e)
            break

        try:
            result = qe.execute(query)
        except Exception as e:
            logger.error(e)
            break

        logger.info('RESULT : %s', result)

    logger.info("END")