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

Ayuda Java + Postgre

Estas en el tema de Ayuda Java + Postgre en el foro de Java en Foros del Web. Hola como estan, les cuento mi problema tengo una aplicacion web en la cual deseo insertar con un procedimiento los datos de tipo String, double, ...
  #1 (permalink)  
Antiguo 03/12/2007, 13:39
 
Fecha de Ingreso: mayo-2007
Mensajes: 14
Antigüedad: 17 años
Puntos: 0
Pregunta Ayuda Java + Postgre

Hola como estan, les cuento mi problema tengo una aplicacion web en la cual deseo insertar con un procedimiento los datos de tipo String, double, int lo que es Java, y en mi base de datos Postgre son de tipo character varying, numeric(a,b) y integer en 'a' es el largo del numero y 'b' es la cantidad dedecimales, el echo es que cuando trato de insertar java se cae y me manda el error diciendo que la funcion no existe


Procedimiento en Postgre

Código:
CREATE OR REPLACE FUNCTION x.x(IN p_codigo_depto integer, IN p_codigo_linea integer, IN p_codigo_familia integer, IN p_codigo_sub_familia integer, IN p_nombre_producto character varying, IN p_descripcion_corta_producto character varying, IN p_descripcion_extendida_producto character varying, IN p_stock_minimo_producto numeric, IN p_stock_maximo_producto numeric, IN p_stock_critico_producto numeric, IN p_precio_venta_unitario numeric, IN p_pto_reorden numeric, IN p_activo character varying, IN p_unidad_por_embalaje numeric, IN p_publicar_web character varying, IN p_estado_producto character varying, OUT mensaje character varying) AS
$BODY$

BEGIN


	INSERT INTO x.p
	(	
		codigo_producto,
		codigo_depto,
		codigo_linea,
		codigo_familia,
		codigo_sub_familia,
		nombre_producto,
		descripcion_corta_producto,
		descripcion_extendida_producto,
		stock_minimo_producto,
		stock_maximo_producto,
		stock_critico_producto,
		precio_venta_unitario,
		pto_reorden,
		activo,
		unidad_por_embalaje,
		publicar_web, 
		estado_producto,
		fecha_creacion
	)
	VALUES
	(	
		(select * from p.getcodigoproducto()),
		p_codigo_depto,
		p_codigo_linea,
		p_codigo_familia,
		p_codigo_sub_familia,
		p_nombre_producto,
		p_descripcion_corta_producto,
		p_descripcion_extendida_producto,
		p_stock_minimo_producto,
		p_stock_maximo_producto,
		p_stock_critico_producto,
		p_precio_venta_unitario,
		p_pto_reorden,
		p_activo,
		p_unidad_por_embalaje,
		p_publicar_web, 
		p_estado_producto,
		date(now())

	);

EXCEPTION
WHEN OTHERS THEN
	mensaje := SQLERRM;
RETURN;
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
en Java

Código:
public boolean addProducto(DataProducto dtProducto)
	{
		boolean okAdd = false;
		DatabaseManager databaseManager = new DatabaseManager();
	
		try
		{
			databaseManager.getPooledConnection();
		
			String transaccion = "{call x.x(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}";
			databaseManager.getPreparedCall(transaccion);
		
			databaseManager.setParamCall(1,Integer.parseInt(dtProducto.getCodigoDepto()));
			databaseManager.setParamCall(2,Integer.parseInt(dtProducto.getCodigoLinea()));
			databaseManager.setParamCall(3,Integer.parseInt(dtProducto.getCodigoFamilia()));
			databaseManager.setParamCall(4,Integer.parseInt(dtProducto.getCodigoSubFamilia()));
			databaseManager.setParamCall(5,dtProducto.getNombreProducto());			
			databaseManager.setParamCall(6,dtProducto.getDescripcionCortaProducto());
			databaseManager.setParamCall(7,dtProducto.getDescripcionExtensaProducto());
			databaseManager.setParamCall(8,dtProducto.getStockMinimoProducto());
			databaseManager.setParamCall(9,dtProducto.getStockMaximoProducto());
			databaseManager.setParamCall(10,dtProducto.getStockCriticoProducto());
			databaseManager.setParamCall(11,dtProducto.getPrecioVentaUnitario());
			databaseManager.setParamCall(12,dtProducto.getPuntoReorden());
			databaseManager.setParamCall(13,dtProducto.getActivo());
			databaseManager.setParamCall(14,dtProducto.getUnidadEmbalaje());
			databaseManager.setParamCall(15,dtProducto.getPublicarWeb());
			databaseManager.setParamCall(16,dtProducto.getEstado());
			databaseManager.registerOutParameter(17,Types.VARCHAR);
		
			databaseManager.executePreparedCall();
		
			if(databaseManager.getCstmt().getString(17) != null)
			{
				String mensajeError = databaseManager.getCstmt().getString(17);
				System.out.println("MENSAJE DE ERROR DE SP addProducto = " + mensajeError);
				return false;
			}
			else
			{
				okAdd = true;
			}
		}
		catch(Exception e)
		{
			System.out.println("Error ServicioProductoBean.addProducto()= " + e.getMessage());
		}
		finally
		{
			databaseManager.dropPooledConnection();
		}
		return okAdd;
	}
al momento de ejecutare esta linea databaseManager.executePreparedCall();
se cae diciendo que la funcion no existe, al parecer es un problema de compatibilidad de tipos de datos pero no estoy seguro.

Ojala me puedan ayudar porfa
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 08:23.