    # File lib/active_record/vendor/db2.rb, line 148
        def execute(*parms)
          raise "The statement was not prepared" if @prepared == false

          if parms.size == 1 and parms[0].class == Array
            parms = parms[0]
          end

          if @numParms != parms.size
            raise "Number of parameters supplied does not match with the SQL statement"
          end

          if @numParms > 0            #need to bind parameters
            #--------------------------------------------------------------------
            #calling bindParms may not be safe. Look comment below.
            #--------------------------------------------------------------------
            #bindParms(parms)

            valueArray = []
            1.upto(@numParms) do |i|  # parameter number starts from 1
              type = @parmArray[i - 1].class
              size = @parmArray[i - 1].size
              decimalDigits = @parmArray[i - 1].decimalDigits

              if parms[i - 1].class == String
                valueArray << parms[i - 1]
              else
                valueArray << parms[i - 1].to_s
              end

              rc = SQLBindParameter(@handle, i, type, size, decimalDigits, valueArray[i - 1])
              check_rc(rc)
            end
          end

          check_rc(SQLExecute(@handle))

          if @numParms != 0
            check_rc(SQLFreeStmt(@handle, SQL_RESET_PARAMS)) # Reset parameters
          end

          self
        end