Fecha Inicial : 20/04/2018
Fecha Final :  20/04/2019
Hora Inicio: 12:37 AM
Hora Final:  2:27 AM
Horas invertidas(Minutos): 110
Colaboradores: Oscar Cortés

Actividad:

Crear una tabla que almacene los cambios dentro de cada tabla al llamar un CRUD


Crear un código en python que parsee el documento que crea las tablas, para generar el CRUD (pendiente que agregue los eventos a la tabla de eventos y RUD para cada tabla)


Código:
Tabla de eventos:


create table EventoMantenimiento (
ID int identity(1,1) primary key,
Tabla nvarchar(50) not null,
Antes XML not null,
Despues XML not null,
Fecha datetime not null default (getDate())

)

Codigo para el CRUD


def createHardcoreCRUDE(script):
    """Crea cuatro funciones por cada tabla, además
    de agregar a la tabla 'eventos' los cambios de cada tabla."""
    print("Hello world")
    
    tempo = ""
    jump = False
    for i in range(len(script)-1):
        if (script[i] != "\t"):
            tempo += script[i]

    
    tablas = []
    tabla = None
    
    for t in tempo.split("\n"):
        if len(t) == 0:
            continue
        
        if (t[-1] == "("):
            tabla = Tabla(t.split(" ")[2][:-1])
            tablas.append(tabla)
            
        elif (t[0] != ")" and tabla != None):
            tt = t.split(" ")
            tabla.agregarDato(tt[0], tt[1])

    tablas[0].toCRUD()
        
##            if (t[0] == ")" or 
##                print(t)




class Tabla:
    nombre = ""
    columnas = []
    tipos = []
    parametros = []

    def __init__(self, pNombre):
        self.nombre = pNombre
        self.columnas = []
        self.tipos = []
        self.parametros = []

    def agregarDato(self, pNombre, pTipo):
        self.columnas.append(pNombre)
        intial = pNombre[0].upper()
        self.parametros.append("@p" + intial + pNombre[1:])
        self.tipos.append(pTipo)

    def toString(self):
        print(self.nombre)
        print(self.columnas)
        print(self.tipos)
        print(self.parametros)


    def toCRUD(self):
        #Create
        print("create procedure SPCREATE_"+self.nombre)
        for i in range(len(self.parametros) - 1):
            if (i == len(self.parametros) - 2):
                print("\t"+self.parametros[i] + " " + self.tipos[i])
            else:
                print("\t"+self.parametros[i] + " " + self.tipos[i] + ", ")

        print("""as
begin
    begin tran""")

        print("\t\tinsert into " + self.nombre)
        values = "\t\tvalues ("

        for i in range(len(self.parametros) - 1):
            values += self.parametros[i] + ", "

        values = values[:-2] + ")"
        print(values)

        print("\tcommit tran")
        print("end\ngo")


        #Delete


        #Update



        #Read

Comentarios