Como evitar la tecla ‘enter’ para enviar un formulario

Normalmente si pulsamos la tecla ‘enter’ en un formulario este se envía al servidor,
para evitar esto lo que tenemos que hacer es cambiar el tipo del botón de envío
de tipo ‘submit’ a tipo ‘button’ y ponerle un javascript para que lo envíe.

antes
input type="submit" value="Grabar"

despues
input type="button" value="Grabar" onclick="document.forms[0].submit();"

He descubierto hoy que si el formulario tiene sólo un campo de tipo texto, al dar al enter (está definido así) enviará el formulario al servidor sin remedio, tenéis que controlarlo en servidor 🙁

Publicado en html | 2 comentarios

Buscar una cadena de texto en todas las definiciones de vistas en SQL

Si necesitamos buscar en todas las vistas una cadena de texto, podemos usar la siguiente consulta sql


select obj.name, sm.definition
from sys.objects obj
join sys.sql_modules sm on obj.object_id = sm.object_id
where
obj.type = 'V' and sm.definition LIKE '%pod1112%'

Con esta nueva consulta podemos buscar más allá de los 4000 caracteres que tiene la consulta que
usaba el INFORMATION_SCHEMA.VIEWS ya que si la vista era muy grande puede ser que no encontremos lo que
buscamos aunque si que esté en una de las vistas.
Dejo la consulta vieja aqui abajo, pero hay que usar mejor la de arriba.
SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, VIEW_DEFINITION, CHECK_OPTION, IS_UPDATABLE
FROM INFORMATION_SCHEMA.VIEWS
WHERE (VIEW_DEFINITION LIKE '%pod1112%')

Publicado en SQL Server 2008 | Deja un comentario

Usar variables en un procedimiento almacenado

En sql si que podemos usar las variables del tipo @ en la parte del where de la consulta, pero cuando lo que queremos es poder usar esa variable en la parte del SELECT o del FROM tenemos que usar esta forma:


--Declaramos la variable
DECLARE @tabla as varchar(255)
--Declaramos la sentencia (muy importante, tiene que ser de tipo nvarchar)
DECLARE @sql NVARCHAR(4000)


SET @tabla = "planes"SET @sql = "SELECT * FROM " + @tabla + " WHERE plan=1"
Execute sp_executesql @sql

Publicado en SQL Server 2008 | Deja un comentario

Acceder a las properties desde un scriptlet

Normalmente podemos acceder al fichero de properties en los Action desde el objeto ServletContext
que si que está disponible para las clases que heredan de DispatchAction

ServletContext contextoServlet = this.getServlet().getServletContext();
Properties parametros = (Properties) contextoServlet.getAttribute("parametros");

Pero si tenemos que usar estas properties en un scriptlet en un jsp, aqui no está disponible el contexto
del servlet, así que tenemos que usar el objeto application que si que tiene el contexto.


Properties parametros = (Properties) application.getAttribute("parametros");
String duracion = parametros.getProperty("periodo.duracion.total");

Publicado en Java, Struts 1.1 | Deja un comentario

Redondear un número a un múltiplo

Si queremos redondear un número de 2 decimales al múltiplo superior de otro, en SQL Server podemos
usar esta función:


ALTER FUNCTION [dbo].[RoundMult] (@valor decimal(8,2), @multiplo decimal(8,2))
RETURNS decimal(8,2) AS

BEGIN
DECLARE @Residuo decimal(8,2)
DECLARE @ValASumar decimal(8,2)

set @Residuo=@Valor%@Multiplo
IF @Residuo=0.0
return @Valor
ELSE
set @ValASumar= @Multiplo-@Residuo

return @Valor+@ValASumar
END

En el sql ponemos:
Select dbo.RoundMult(4.3,0.5) da como resultado 4.5 porque redondea de medio en medio.

Publicado en SQL Server 2008 | 4 comentarios

Cambiar la visibilidad de un elemento

Podemos hacer que un elemento aparezca y desaparezca modificando su atributo display,
pero en jquery tenemos los metodos show() y hide() para hacerlo

function visibilidad() {
if ($('#detalleCurso').is(':hidden'))
$('#detalleCurso').show("slow");
else
$('#detalleCurso').hide("slow");
}

Para el elemento ‘detalleCurso’ le muestra si está escondido (con un efecto de cortina) y lo oculta si está visible.

Tenemos tambien la opción de usar el metodo toggle() para intercambiar las visibilidades

function visibilidad() {
$('#detalleCurso').toggle();
}

Publicado en Jquery | Deja un comentario

Comando para ver los programas que se arrancan en Win XP

Si damos a ejecutar, y ponemos el comando msconfig en Windows XP (TM)

Aparece una pantalla, donde hay una pestaña que se llama ‘Inicio’ donde se pueden ver todos los programas que se lanzan al arrancar el ordenador. Hay podemos deshabilitar las cosas que no queremos tener arrancadas desde el principio para que el arranque sea más rápido.

Publicado en cmd | Deja un comentario

Java Heap, PermGen

Algunas veces nos ha dado un error a la hora de generar los ficheros en pdf en las aplicaciones web que tenemos en los Tomcat.

  • java.lang.OutOfMemoryError: PermGen space

Para resolverlo hay que poner en el arranque del tomcat las opciones

  • set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Xms32m -Xmx256m -XX:MaxPermSize=256m

Este error también lo tienen recogido en el blog de la web


 

Publicado en JasperReports, Java | 4 comentarios

Grep recursivo para Solaris

La utilidad Grep que implementa Solaris no nos da la opcion de usar el -r (recusive) como en otro sistemas operativos tales como Linux o HP-UX.

La Solucion es usar esto

find . | xargs grep 'CADENA_A_BUSCAR'

Publicado en Sistemas operativos | Deja un comentario

Inocente System.setProperty()

Cuidado al utilizar el método System.setProperty() en Java cuando se comparta la misma Máquina Virtual entre varias aplicaciones, el cambio en una propiedad establecido en una aplicación afectará a todas las demás.

Publicado en Java | 1 comentario