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

[SOLUCIONADO] SQL ServerException JAVA

Estas en el tema de SQL ServerException JAVA en el foro de Java en Foros del Web. Hola que tal el problema que tengo y espero me puedan ayudar estoy desarrollando una aplicación de escritorio en Java, tengo información guardada en una ...
  #1 (permalink)  
Antiguo 07/11/2015, 00:23
 
Fecha de Ingreso: mayo-2012
Ubicación: df
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Exclamación SQL ServerException JAVA

Hola que tal el problema que tengo y espero me puedan ayudar estoy desarrollando una aplicación de escritorio en Java, tengo información guardada en una base de datos en un SQL Server 2008, en una tabla llamada Empleados tengo diversos campos tipos Int, varchar e image, hasta aquí todo normal, pero al momento de realizar una consulta y recuperar los valores de image, me indica el siguiente error com.microsoft.sqlserver.jdbc.SQLServerException: Se obtuvo acceso a los datos y estos no están disponibles para esta columna o parámetro., y no muestra la imagen, ya he intentado con otros códigos y es el mismo error, desconozco cual sea la causa también intente creando otro PreparedStatement pero aun así el error prevalece.

Código Java:
Ver original
  1. PreparedStatement pst3 = null;
  2.         String Fn = Ficha.getText();
  3.         Connection conn2 ;
  4.         conn2 = javaconnect.ConnecrDb();
  5.         String sqlf = "SELECT *  FROM Empleados WHERE Ficha = ?";
  6.         if (Fn.isEmpty() == true) {
  7.             JOptionPane.showMessageDialog(this, "No se puede consultar un valor que no ha sido ingresado verifique ficha.", "ERROR.", JOptionPane.ERROR_MESSAGE);
  8.         } else {
  9.             try {
  10.                 pst3 = conn2.prepareStatement(sqlf);
  11.                 pst3.setString(1, Fn);
  12.                 resultado = pst3.executeQuery();
  13.  
  14.                 if (resultado.next()) {
  15.  
  16.                     Nombre.setText(resultado.getString("Nombre"));
  17.                     Apellido_paterno.setText(resultado.getString("Apellido_paterno"));
  18.                     Apellido_materno.setText(resultado.getString("Apellido_materno"));
  19.                     Vigencia.setDate(resultado.getDate("Vigencia"));
  20.                     Directo.setText(resultado.getString("Directo"));
  21.                     Extension.setText(resultado.getString("Extension"));
  22.                     Observaciones.setText(resultado.getString("Observaciones"));
  23.                 if (resultado.getBinaryStream("Firma") == null) {//si no encuentra la imagen
  24.                 JOptionPane.showMessageDialog(this, "No image");
  25.             } else {
  26.             //int len = resultado.getInt("Tamano");
  27.             byte[] b = new byte[1024];
  28.             InputStream in = resultado.getBinaryStream("Firma");
  29.             int n = in.read(b);
  30.             in.close();
  31.             Image img = Toolkit.getDefaultToolkit().createImage(b);
  32.             resultado.close();
  33.             conn.close();
  34.             Firma.setIcon((Icon) img);
  35.                 }
  36.                 } else {
  37.              
  38.                     JOptionPane.showMessageDialog(this, "La ficha no esta registrada, verifique o intente registrar.", "Error", JOptionPane.ERROR_MESSAGE);
  39.                 }
  40.            
  41.             } catch (SQLException | HeadlessException   | IOException ex) {
  42.                 System.out.println(ex);
  43.                 JOptionPane.showMessageDialog (this, ex);
  44.        
  45.        
  46.         }
  47.    
  48.         }
Agradezco la atención.

Última edición por gnzsoloyo; 07/11/2015 a las 03:38
  #2 (permalink)  
Antiguo 07/11/2015, 03:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: SQL ServerException JAVA

Tu problema no es de SQL sino Java, y ni siquiera es de MySQL, donde lo publicaste, sino con SQL Server.

OFF TOPIC en MySQL.
Movido al foro Java.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/11/2015, 13:46
 
Fecha de Ingreso: mayo-2012
Ubicación: df
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: SQL ServerException JAVA

El tema estaba colocado en SQL.
  #4 (permalink)  
Antiguo 07/11/2015, 16:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: SQL ServerException JAVA

Sigue siendo OFF TOPIC.
Tu pregunta no está relacionada con SQL, sino con Java. No estabas consultando por sintaxis de SQL Server (SQL es el lenguaje, no el gestor de base), sino un problema de excepciones en Java.
SI luego se desprende que hay un error en el nombre de las columnas, sería un defecto de programación; si el problema es de permisos de usuario, sería de SQL Server; pero la sintaxis de esa consulta es tan elemental que no se ve relación con un problema de SQL. A lo mucho hay un defecto de datos usados...y eso no es un error de SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 07/11/2015 a las 16:35
  #5 (permalink)  
Antiguo 09/11/2015, 09:55
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: SQL ServerException JAVA

Hola:

Si buscas en google "Se obtuvo acceso a los datos y estos no están disponibles para esta columna o parámetro", sale esto https://msdn.microsoft.com/es-es/lib...=sql.110).aspx

y en esa página, donde está el texto del error, dice que a los método estilo getBinaryStream(), solo se los puede llamar una vez y si se les llama más, dan esa excepción que te sale a tí. Estas haciendo

Código Java:
Ver original
  1. if (resultado.getBinaryStream("Firma") == null)  {
  2.   ...
  3. } else {
  4.     ...
  5.    InputStream in = resultado.getBinaryStream("Firma");
  6. }

es decir, dos llamadas, una en el if y otra en el else. Prueba a ponerlo así

Código Java:
Ver original
  1. InputStream in = resultado.getBinaryStream("Firma");
  2. if (null == in ) {
  3.     // error
  4. } else {
  5.    // a currar con la imagen
  6. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 09/11/2015, 10:02
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: SQL ServerException JAVA

Buenas,

Si, efectivamente era esa la solucion.

En realidad puso el post duplicado:
http://www.forosdelweb.com/f45/sqlse...beans-1141336/

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: bases-de-datos-general, jdbc, netbeans, sql
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 13:50.