def execute_batch_prepared_statement(self, prepared_statement, param_lists):
        """
        @type prepared_statement PreparedStatement
        @type param_lists list[list]

        """
        self._putMessageId(protocol.EXECUTEBATCHPREPAREDSTATEMENT)
        self.putInt(prepared_statement.handle)
        for parameters in param_lists:
            if prepared_statement.parameter_count != len(parameters):
                raise ProgrammingError("Incorrect number of parameters specified, expected %d, got %d" %
                                       (prepared_statement.parameter_count, len(parameters)))
            self.putInt(len(parameters))
            for param in parameters:
                self.putValue(param)
        self.putInt(-1)
        self.putInt(len(param_lists))
        self._exchangeMessages()

        for _ in param_lists:
            result = self.getInt()
            if result == -3:
                error_code = self.getInt()
                error_string = self.getString()
                db_error_handler(error_code, error_string)
Example #2
0
    def _exchangeMessages(self, getResponse=True):
        """Exchange the pending message for an optional response from the server."""
        try:
            # print "message to server: %s" %  (self.__output)
            self.send(self.__output)
        finally:
            self.__output = None

        if getResponse is True:
            self.__input = self.recv(False)
            self.__inpos = 0
            
            error = self.getInt()

            if error != 0:
                db_error_handler(error, self.getString())
        else:
            self.__input = None
            self.__inpos = 0
    def _exchangeMessages(self, getResponse=True):
        """Exchange the pending message for an optional response from the server."""
        try:
            # print "message to server: %s" %  (self.__output)
            self.send(self.__output)
        finally:
            self.__output = None

        if getResponse is True:
            self.__input = self.recv(False)
            self.__inpos = 0

            error = self.getInt()

            if error != 0:
                db_error_handler(error, self.getString())
        else:
            self.__input = None
            self.__inpos = 0