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)
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