Java - AYUDA CON RESULSET

   
Vista:

AYUDA CON RESULSET

Publicado por Luis (2 intervenciones) el 23/06/2014 22:50:39
Buenas, tengo problemas con un error que es
:com.microsoft.sqlserver.jdbc.sqlserverexception la instruccion no devolvio un conjunto de resultados
inteno insertar datos a mi base de datos desde java
lo bueno es que inserta pero al guardar me sale el error de sql
Ya he probado si el error es en el sql pero la llamada del procedimiento desde consulta me corre normal y me manda el mensage de INSERTADO pero en java me sale el error sql
por favor si me pueden ayudar
este es el codigo de mi boton INSERTAR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
String DNI = txtDNI.getText();
        String NOMBRE = txtnombre.getText();
        String APELLIDOPATERNO = txtapellidopaterno.getText();
        String APLLIDOMATERNO = txtapellidomaterno.getText();
        String CELULAR = TxtCelular.getText();
        String ruta = rutafoto.getText();
        String usuario = jtfUsuario.getText();
        String contraseña = jpfContrasenia.getText();
        if (this.txtDNI.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "FALTA ESCRIBIR EL DNI DEL DOCENTE", "VERIFICAR", JOptionPane.WARNING_MESSAGE);
            this.txtDNI.requestFocus();
        } else if (this.txtnombre.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "FALTA ESCRIBIR EL NOMBRE DEL DOCENTE", "VERIFICAR", JOptionPane.WARNING_MESSAGE);
            this.txtnombre.requestFocus();
        } else if (this.txtapellidopaterno.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "FALTA ESCRIBIR EL APELLIDO PATERNO DEL DOCENTE", "VERIFICAR", JOptionPane.WARNING_MESSAGE);
            this.txtapellidopaterno.requestFocus();
        } else if (this.txtapellidomaterno.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "FALTA ESCRIBIR EL APELLIDO MATERNO DEL DOCENTE", "VERIFICAR", JOptionPane.WARNING_MESSAGE);
            this.txtapellidomaterno.requestFocus();
        } else if (this.TxtCelular.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "FALTA ESCRIBIR EL CELULAR DEL DOCENTE", "VERIFICAR", JOptionPane.WARNING_MESSAGE);
            this.TxtCelular.requestFocus();
 
        } else if (rutafoto.getText().length() == 0) {
            JOptionPane.showMessageDialog(null, "FALTA SUBIR FOTO", "VERIFICAR", JOptionPane.WARNING_MESSAGE);
        } else {
 
            FileInputStream fis = null;
            try {
                File file = new File(ruta);
                fis = new FileInputStream(file);
                try (
                        PreparedStatement pstm = con.Conectar().getConnection().prepareStatement("{call INSERTARUSUARIO (?,?,?,?,?,?,?,?)}")) {
                    pstm.setString(1, DNI);
                    pstm.setString(2, NOMBRE);
                    pstm.setString(3, APELLIDOPATERNO);
                    pstm.setString(4, APLLIDOMATERNO);
                    pstm.setString(5, CELULAR);
                    //convertirlo a binarios
                    pstm.setBinaryStream(6, fis, (int) file.length());
                    pstm.setString(7, usuario);
                    pstm.setString(8, contraseña);
 
                    ResultSet r = pstm.executeQuery();
                    String respuesta = "";
                    while (r.next()) {
                                        respuesta = r.getString(1).toString();
                    }
                    JOptionPane.showMessageDialog(null, respuesta, "CONFIRMACION", JOptionPane.WARNING_MESSAGE);
                    //falta metodo cargardocente, limpiar,FormatoDocente                       
 
                    jlfoto.setIcon(new ImageIcon(getClass().getResource("/Imagenes/usuario.jpg")));
 
                } catch (SQLException e) {
                    JOptionPane.showMessageDialog(null, "ERROR AL REGISTRAR" + e, "ERROR", JOptionPane.WARNING_MESSAGE);
                }
            } catch (FileNotFoundException ex) {
                JOptionPane.showMessageDialog(null, "NO SE ENCONTRARON LOS ARCHIVOS REQUERIDOS PARA EL REGISTRO DEL USUARIO" + ex, "ERROR", JOptionPane.WARNING_MESSAGE);
            } finally {
                try {
                    fis.close();
 
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(null, "OCURRIO UN ERROR AL MOMENTO DE CERRAR LA CONEXION CON LA BASE DE DATOS", "ERROR", JOptionPane.WARNING_MESSAGE);
                }
 
            }
 
        }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA CON RESULSET

Publicado por Mauricio (6 intervenciones) el 24/06/2014 01:58:29
Una pregunta rapida, ese procedimiento al que llamas devuelve un resultset? porque según lo que dices se ejecuta correctamente pero el error es que no recibe nada de vuelta, como si fuera un insert y ya. Comenta todo lo relacionado con el resultset y simplemente ejecuta la query (Sin almacenarlo en el resultset) y muestra el resultado a ver si es "1"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA CON RESULSET

Publicado por Luis (2 intervenciones) el 24/06/2014 02:32:58
este es mi procedimiento
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
USE [ventas]
GO
/****** Object:  StoredProcedure [dbo].[INSERTARDB]    Script Date: 06/23/2014 19:32:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[INSERTARDB]
@DNI VARCHAR(8),
@NOMBRE nvarchar(50),
@APELLIDOPATERNO nvarchar(50),
@APELLIDOMATERNO nvarchar(50),
@CELULAR nvarchar(9),
@FOTO varbinary(max),
@USUARIO NVARCHAR(20),
@CONTRASEÑA NVARCHAR(20)
AS
BEGIN
DECLARE @RESPUESTA NVARCHAR (50)
IF EXISTS (SELECT DNI FROM  REGISTRO where DNI=@DNI)
BEGIN
SET @RESPUESTA= 'El Dni ya existe'
select @RESPUESTA as respuesta
END
ELSE IF EXISTS (SELECT * FROM REGISTRO WHERE REGISTRO.NOMBRE=@NOMBRE AND REGISTRO.APELLIDOPATERNO=@APELLIDOPATERNO AND REGISTRO.APELLIDOMATERNO=@APELLIDOMATERNO AND REGISTRO.CELULAR=@CELULAR AND REGISTRO.FOTO=@FOTO AND REGISTRO.USUARIO=@USUARIO AND REGISTRO.CONTRASEÑA=@CONTRASEÑA)
BEGIN
SET @RESPUESTA = 'El USUARIO ya existe '
select @RESPUESTA as respuesta
END
ELSE
BEGIN
BEGIN TRAN INSERTARDB
INSERT INTO REGISTRO VALUES (@DNI,@NOMBRE ,@APELLIDOPATERNO ,@APELLIDOMATERNO ,@CELULAR ,@FOTO,@USUARIO,@CONTRASEÑA)
SET @RESPUESTA='USUARIO REGISTRADO EXITOSAMENTE'
select @RESPUESTA as respuesta
COMMIT TRAN INSERTARDB
END
END


si puse en comentario esa parte pero ya no me aparecia el error pero aparte ya no me grababa los datos que ingresaba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA CON RESULSET

Publicado por Mauricio (6 intervenciones) el 28/06/2014 17:09:57
Bien, no mostraba el error, pero no te guardaba porque no estabas ejecutando la query? es decir hacías esto

pstm.executeQuery();

sin guardarlo en resultset simplemente ejecutándolo en una linea y ya?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar