def execute(self, environment): lista = [] params = [] tab = self.tabla for p in self.parametros: params.append(p.execute(environment)) result = Checker.checkInsert(dbtemp, self.tabla, self.columns, params) if result[0] == None: for p in result[1]: if p == None: lista.append(p) else: lista.append(p.value) res = jsonMode.insert(dbtemp, tab, lista) if res == 2: return "No existe la base de datos" elif res == 3: return "No existe la tabla" elif res == 5: return "Columnas fuera de los limites" elif res == 4: return "Llaves primarias duplicadas" elif res == 1: return "Error en la operacion" elif res == 0: return "Fila Insertada correctamente" else: return result[0]
def execute(self, environment): Struct.load() # insert = [posiblesErrores,noColumnas] insert = Struct.insertTable( instruction.dbtemp, self.name, self.columns, self.inherits ) error = insert[0] nCol = insert[1] if not error: error = Checker.checkValue(instruction.dbtemp, self.name) """ Result 0: insert 1: error 2: not found database 3: exists table """ if not error: result = jsonMode.createTable(instruction.dbtemp, self.name, nCol) if result == 0: pass elif result == 1: instruction.syntaxPostgreSQL.append("Error: XX000: Error interno") return "Error: No se puede crear la tabla: " + self.name elif result == 2: instruction.semanticErrors.append( "La base de datos " + instruction.dbtemp + " no existe" ) instruction.syntaxPostgreSQL.append( "Error: 3F000: base de datos" + instruction.dbtemp + " no existe" ) return "Error: Base de datos no encontrada: " + instruction.dbtemp elif result == 3 and self.exists: instruction.semanticErrors.append( ["La tabla " + str(self.name) + " ya existe", self.row] ) instruction.syntaxPostgreSQL.append( "Error: 42P07: La tabla " + str(self.name) + " ya existe" ) return "La tabla ya existe en la base de datos" else: instruction.semanticErrors.append( ["La tabla " + str(self.name) + " ya existe", self.row] ) instruction.syntaxPostgreSQL.append("Error: 42P07: tabla duplicada") return "Error: ya existe la tabla " + self.name pk = Struct.extractPKIndexColumns(instruction.dbtemp, self.name) addPK = 0 if pk: addPK = jsonMode.alterAddPK(instruction.dbtemp, self.name, pk) if addPK != 0: instruction.syntaxPostgreSQL.append( "Error: 23505: Error en llaves primarias de la instruccion CREATE TABLE de la tabla " + str(self.name) ) return "Tabla " + self.name + " creada" else: Struct.dropTable(instruction.dbtemp, self.name) return error
def execute(self, environment): alter = Struct.alterColumnsTable(dbtemp, self.table, self.params) if alter == None: alter = Checker.checkValue(dbtemp, self.table) Struct.save() if alter == None: alter = "Tabla alterada: " + self.table return alter
def execute(self, environment): try: lista = [] params = [] tab = self.tabla for p in self.parametros: params.append(p.execute(environment)) result = Checker.checkInsert(dbtemp, self.tabla, self.columns, params) if result[0] == None: for p in result[1]: if p == None: lista.append(p) else: lista.append(p.value) res = jsonMode.insert(dbtemp, tab, lista) if res == 2: sintaxPostgreSQL.insert( len(sintaxPostgreSQL), "Error: 42P01: La base de datos " + str(self.name) + " no existe", ) return "La base de datos no existe" elif res == 3: sintaxPostgreSQL.insert( len(sintaxPostgreSQL), "Error: 42P01: La tabla " + str(tab) + " no existe", ) return "No existe la tabla" elif res == 5: sintaxPostgreSQL.insert( len(sintaxPostgreSQL), "Error: 42601: INSERT tiene mas o menos registros que columnas ", ) return "Columnas fuera de los limites" elif res == 4: sintaxPostgreSQL.insert( len(sintaxPostgreSQL), "Error: 23505: el valor de clave duplicada viola la restricción única ", ) return "Llaves primarias duplicadas" elif res == 1: sintaxPostgreSQL.insert(len(sintaxPostgreSQL), "Error: XX000: Error interno") return "Error en la operacion" elif res == 0: return "Fila Insertada correctamente" else: return result[0] except: raise
def execute(self, environment): try: lista = [] params = [] tab = self.tabla for p in self.parametros: params.append(p.execute(environment)) result = Checker.checkInsert(instruction.dbtemp, self.tabla, self.columns, params) if result[0] == None: for p in result[1]: if p == None: lista.append(p) else: lista.append(p.value) res = jsonMode.insert(instruction.dbtemp, tab, lista) if res == 2: instruction.semanticErrors.append([ "La base de datos " + instruction.dbtemp + " no existe", self.row, ]) instruction.syntaxPostgreSQL.append( "Error: 42000: La base de datos " + str(instruction.dbtemp) + " no existe") return "La base de datos no existe" elif res == 3: instruction.semanticErrors.append( ["La tabla " + str(tab) + " no existe", self.row]) instruction.syntaxPostgreSQL.append( "Error: 42P01: La tabla " + str(tab) + " no existe") return "No existe la tabla" elif res == 5: instruction.semanticErrors.append([ "La instruccion INSERT tiene mas o menos registros que columnas", self.row, ]) instruction.syntaxPostgreSQL.append( "Error: 42611: INSERT tiene mas o menos registros que columnas " ) return "Columnas fuera de los limites" elif res == 4: instruction.semanticErrors.append([ "El valor de la clave esta duplicada, viola la restriccion unica", self.row, ]) instruction.syntaxPostgreSQL.append( "Error: 23505: el valor de clave esta duplicada, viola la restricción única " ) return "Llaves primarias duplicadas" elif res == 1: instruction.syntaxPostgreSQL.append( "Error: XX000: Error interno") return "Error en la operacion" elif res == 0: return "Fila Insertada correctamente" else: return result[0] except: instruction.syntaxPostgreSQL.append( "Error: P0001: Error en la instruccion INSERT") pass
def returnErrors(): list_ = list() list_ = Checker.returnErrors() list_ += syntaxPostgreSQL return list_