# -*- coding: latin-1 -*-
import sys
sys.path.append( gBase + "/library.zip" )
import dbAccess
import EasyDialogs as g
global tabla, vista, cursor, lista, progreso
cDB = "{FICHMDB}"
if os.access( cDB, os.F_OK ) :
    os.remove( cDB )
progreso = g.ProgressBar( "{CAPTION}", {NUMDBFS}, "", cancel = "{CANCELAR}" )
mt = dbAccess.MotorDB( cDB )
mt.Crear()
def datos( orden, dato ) :
    global tabla, campos, vista, lista, progreso
    if orden == "TB" :
        tabla = dato
    elif orden == "CT" :
        progreso.inc()
        mt.SQL( dato )
    elif orden == "NC" :
        d = dato.split( ":" )
        vista = "INSERT INTO " + tabla + " VALUES(" + "?,"*(int(d[0])-1) + "?)"
    elif orden == "NR" :
        lista = []
    elif orden == "DN" :
        lista.append( int(dato) )
    elif orden == "DF" :
        lista.append( float(dato) )
    elif orden == "DT" :
        lista.append( dato )
    elif orden == "DB" :
        lista.append( dato )
    elif orden == "CR" :
        mt.SQL( vista, tuple(lista) )
        lista = []
error = False
try :
    f = open( "{FICHDAT}" )
    sib = False
    bloque = ""
    for linea in f :
        linea = linea.strip( chr(10) )
        if sib :
            if linea == '"""' :
                sib = False
                datos( orden, bloque )
                bloque = ""
            else :
                bloque = bloque + chr(13)+ chr(10) + linea
        else :
            orden = linea[0:2]
            dato = linea[3:]
            if dato[0:3] == '"""' :
                sib = True
                bloque = dato[3:]
            else :
                datos( orden, dato )
    mt.Cerrar()
except :
    menserror = tabla + " : " + sys.exc_info()[1]
    error = True
f = open( "{ERROR}", "wb" )
f.write( "S"+menserror if error else "N" )
f.close()
