Foros del Web » Programación para mayores de 30 ;) » Java »

Pasar fecha desde java a postgresql

Estas en el tema de Pasar fecha desde java a postgresql en el foro de Java en Foros del Web. Hola Amigos... Veran he creado la siguiente tabla: CREATE TABLE cliente ( con_clte character varying NOT NULL, fol_con_clte character varying NOT NULL, fecha_clte Date NOT ...
  #1 (permalink)  
Antiguo 18/08/2009, 21:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 25
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Pasar fecha desde java a postgresql

Hola Amigos...
Veran he creado la siguiente tabla:

CREATE TABLE cliente
(
con_clte character varying NOT NULL,
fol_con_clte character varying NOT NULL,
fecha_clte Date NOT NULL,
CONSTRAINT "pk_conClte" PRIMARY KEY (con_clte)
)
WITH (
OIDS=FALSE
);

Luego he creado esta función para ingresar los datos a la tabla cliente:

CREATE OR REPLACE FUNCTION ingresar_cliente(conClte character varying,
folConClte character varying,fecClte Date)
RETURNS void AS
$BODY$
BEGIN
INSERT INTO cliente(con_clte,fol_con_clte,fec_Clte)
VALUES (conClte,folConClte,fecClte);
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;

Hasta aqui todo bien.
Ahora desde Java he intentado llamar esta función pero me da error por el parametro fecha, no entiendo como enviarla. Esta fecha se encuentra en una caja de texto por eso en la funcion está como String

public void insertarCliente(String contrato,String folio,String fecha){
try{
sentencia = Base_Datos.conexion.prepareCall("{call ingresar_cliente(?,?,?)}")
sentencia.setString(1, contrato);
sentencia.setString(2, folio);
sentencia.setString(3,fecha)
} catch (SQLException e) {
System.out.println("ingresarCliente() ERROR:"+e);
}

Que debo hacer para enviarla como tipo fecha y no string. Porque si la envio como string me da error.
}
  #2 (permalink)  
Antiguo 19/08/2009, 08:48
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Pasar fecha desde java a postgresql

El error es causado por que le estás enviando un valor de String a un parámetro que espera como valor una instancia de Date. Deberías asignar los parámetros de esta forma:

sentencia.setString(1, contrato);
sentencia.setString(2, folio);
sentencia.setDate(3,fecha)

Donde fecha es una instancia de java.sql.Date. Para convertir la fecha en String a este tipo puedes utilizar SimpleDateFormat. Puedes revisar: http://www.exampledepot.com/egs/java...ParseDate.html

Espero sea de ayuda,
__________________
Carlos G. Gavidia
Sun Certified Professional
IBM Certified Solution Designer
http://certified-es.blogspot.com/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.