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

Procedimientos Almacenados con Netbeans

Estas en el tema de Procedimientos Almacenados con Netbeans en el foro de Java en Foros del Web. Hola, estoy haciendo una aplicación en netbeans 6.8, y almaceno información en una BD en SQL Server 2008.. Para hacer consultas a la BD utilizo ...
  #1 (permalink)  
Antiguo 02/09/2011, 07:40
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Procedimientos Almacenados con Netbeans

Hola, estoy haciendo una aplicación en netbeans 6.8, y almaceno información en una BD en SQL Server 2008.. Para hacer consultas a la BD utilizo procedimientos almacenados..
Hasta ahora los procedimientos que hice, me dovolvian un solo registro de una tabla, pero ahora necesitos hacer uno que me devuelve mas de un registro y no se como hacerlo.

Tengo una tabla q se llama CategoriasEI, y necesito guardar esas categorías en un JComboBox, para poder mostrárselas al usuario..

El procedimiento que cree es este:

--Devuelve todas las categorias correspondientes al tipo de operacion pasado por parametro.
CREATE PROCEDURE [dbo].[pa_getCategoriasEI]
@idTipoOp int

AS
BEGIN
SET NOCOUNT ON;
SELECT CategoriaEI.nombre FROM CategoriaEI WHERE idTipoOperacion = @idTipoOp
END



Codigo Netbeans:
//Conecto con la BD..
Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=NombreBD;user=us;password=p ass");

//Llamada al procedimiento.
CallableStatement param; //Variable q uso para llamada al prcedimiento.

param = con.prepareCall("{call dbo.pa_getCategoriasEI(?, ?)}); //Llamo al procedimiento "pa_getCategoriasEI"
param.setInt(1, 1); //Setea el parámetro que recibe la consulta, q es un id
param.registerOutParameter(2, java.sql.Types.INTEGER); //Aca setea el parametro de salida, q es un string.
param.execute(); //Se ejecuta el procedimiento
param.getString(1); //Tomo el resultado de la consulta, en este caso seria un string, pero como me devuelve mas de un registro deberia ser otro tipo de dato, pero no se cual es..

Cdo lo ejecuto, funciona, me devuelve varias filas.. Pero no se donde se almacena ese resultado, y como tomarlo en Netbeans para guardarlo en el JComboBox..

Espero que se haya entendido, y cualquier duda me pregunten..
Saludos!
  #2 (permalink)  
Antiguo 02/09/2011, 08:17
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Procedimientos Almacenados con Netbeans

Hola,

Cita:
Iniciado por orne Ver Mensaje
param = con.prepareCall("{call dbo.pa_getCategoriasEI(?, ?)}); //Llamo al procedimiento "pa_getCategoriasEI"
...
param.registerOutParameter(2, java.sql.Types.INTEGER); //Aca setea el parametro de salida, q es un string.
...
param.getString(1); //Tomo el resultado de la consulta, en este caso seria un string, pero como me devuelve mas de un registro deberia ser otro tipo de dato, pero no se cual es..
El procedimiento almacenado que mostraste no tiene definido ningún parámetro de salida OUTPUT y solamente tiene definido un parámetro de entrada.

{call dbo.pa_getCategoriasEI(?)}

Cita:
Iniciado por orne Ver Mensaje
ResultSet result = param.executeQuery(); //Se ejecuta el procedimiento
El valor devuelto por ese procedimiento almacenado es un ResultSet, una consulta normal a la base de datos.

Saludos,
  #3 (permalink)  
Antiguo 02/09/2011, 08:34
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Procedimientos Almacenados con Netbeans

Antes q nada, Gracias por responder!
Si, es verdad me falto poner el arametro de salida, lo que pasa que fui cambiandolo para ir probando, y no me di cuenta que me fataba eso..

Bueno voy a probar con eso.. Gracias por tu ayuda.!
  #4 (permalink)  
Antiguo 02/09/2011, 09:02
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Procedimientos Almacenados con Netbeans

Ya lo resolvi, como me dijiste
Cita:
ResultSet result = param.executeQuery();
Y desp lo guardo en el combo:

Cita:
if(result.next()){
do{
comboCategoria.addItem(result.getString("nombre")) ;
} while(result.next());
}
Muchas gracias por tu ayuda!
Saludos!

Etiquetas: netbeans, procedimientos, sql, almacenar
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 22:45.