コード例 #1
0
 def execute(self, environment):
     alter = Struct.alterColumnsTable(instruction.dbtemp, self.table, self.params)
     if alter == None:
         alter = Checker.checkValue(instruction.dbtemp, self.table)
         Struct.save()
     if alter == None:
         alter = "Tabla alterada: " + self.table
     return alter
コード例 #2
0
 def execute(self, environment):
     # 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)
         result = avlMode.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:
             addPK2 = jsonMode.alterAddPK(instruction.dbtemp, self.name, pk)
             addPK = avlMode.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
コード例 #3
0
    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 = storage.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
コード例 #4
0
def returnErrors():
    list_ = list()
    list_ = Checker.returnErrors()
    list_ += syntaxPostgreSQL
    return list_