Fecha Inicial : 20/04/2018
Fecha Final : 20/04/2019
Hora Inicio: 12:50 PM
Hora Final: 3:31 PM
Horas invertidas(Minutos): 221
Colaboradores: Oscar Cortés
Actividad:
Terminar el código creador de CRUD para script
Terminado Create con inserción a medias dentro de la tabla de eventos
Código:
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()
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
declare @XmlAntes XML
select * from """ self.nombre + """ for XML auto, type
declare @id int
select max(ID) + 1""")
print("\t\tfrom " + self.nombre + "\n")
insertTable = "\tinsert into " + self.nombre + "("
for i in range(len(self.parametros) - 1):
insertTable += self.columnas[i] + ", "
insertTable = insertTable[:-2] + ")"
print(insertTable)
values = "\t\tvalues (@id, "
for i in range(1, len(self.parametros) - 1):
values += self.parametros[i] + ", "
values = values[:-2] + ")"
print(values)
print("declare @XmlDespues XML"
print("select * from """ self.nombre + """ for XML auto, type")
exec
print("\tcommit tran")
print("end\ngo\n\n")
#Delete
#Update
#Read
Problemas:
Leer XML's creados por MS SQL (Solucionado)
select * from Tabla for xml auto, type
Bibliografía:
https://stackoverflow.com/questions/1564541/how-to-convert-records-in-a-table-to-xml-format-using-t-sql
https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-auto-mode-with-for-xml?view=sql-server-2017
https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-auto-mode-with-for-xml?view=sql-server-2017
https://stackoverflow.com/questions/13397885/bulk-load-xml-referring-to-auto-increment-parent-id
https://docs.microsoft.com/en-us/sql/relational-databases/xml/xml-data-type-and-columns-sql-server?view=sql-server-2017
https://stackoverflow.com/questions/1564541/how-to-convert-records-in-a-table-to-xml-format-using-t-sql
https://support.office.com/en-us/article/create-an-xml-data-file-and-xml-schema-file-from-worksheet-data-e35400d4-0e10-4669-9a50-59a8c57d677e
https://searchsqlserver.techtarget.com/tip/T-SQL-commands-vs-XML-AUTO-in-SQL-Server
Fecha Final : 20/04/2019
Hora Inicio: 12:50 PM
Hora Final: 3:31 PM
Horas invertidas(Minutos): 221
Colaboradores: Oscar Cortés
Actividad:
Terminar el código creador de CRUD para script
Terminado Create con inserción a medias dentro de la tabla de eventos
Código:
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()
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
declare @XmlAntes XML
select * from """ self.nombre + """ for XML auto, type
declare @id int
select max(ID) + 1""")
print("\t\tfrom " + self.nombre + "\n")
insertTable = "\tinsert into " + self.nombre + "("
for i in range(len(self.parametros) - 1):
insertTable += self.columnas[i] + ", "
insertTable = insertTable[:-2] + ")"
print(insertTable)
values = "\t\tvalues (@id, "
for i in range(1, len(self.parametros) - 1):
values += self.parametros[i] + ", "
values = values[:-2] + ")"
print(values)
print("declare @XmlDespues XML"
print("select * from """ self.nombre + """ for XML auto, type")
exec
print("\tcommit tran")
print("end\ngo\n\n")
#Delete
#Update
#Read
Problemas:
Leer XML's creados por MS SQL (Solucionado)
select * from Tabla for xml auto, type
Bibliografía:
https://stackoverflow.com/questions/1564541/how-to-convert-records-in-a-table-to-xml-format-using-t-sql
https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-auto-mode-with-for-xml?view=sql-server-2017
https://docs.microsoft.com/en-us/sql/relational-databases/xml/use-auto-mode-with-for-xml?view=sql-server-2017
https://stackoverflow.com/questions/13397885/bulk-load-xml-referring-to-auto-increment-parent-id
https://docs.microsoft.com/en-us/sql/relational-databases/xml/xml-data-type-and-columns-sql-server?view=sql-server-2017
https://stackoverflow.com/questions/1564541/how-to-convert-records-in-a-table-to-xml-format-using-t-sql
https://support.office.com/en-us/article/create-an-xml-data-file-and-xml-schema-file-from-worksheet-data-e35400d4-0e10-4669-9a50-59a8c57d677e
https://searchsqlserver.techtarget.com/tip/T-SQL-commands-vs-XML-AUTO-in-SQL-Server
Comentarios
Publicar un comentario