コード例 #1
0
    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]
コード例 #2
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
コード例 #3
0
 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
コード例 #4
0
ファイル: instruction.py プロジェクト: Yadira-Ferrer/tytus
    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
コード例 #5
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 = 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
コード例 #6
0
def returnErrors():
    list_ = list()
    list_ = Checker.returnErrors()
    list_ += syntaxPostgreSQL
    return list_