elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  error prepare statement
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error prepare statement  (Leído 9,078 veces)
sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
error prepare statement
« en: 23 Febrero 2009, 06:12 am »



estoy provando sobre el evento keyRealesed de una caja de texto esto

Código:
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                Connection cn;

                cn =
        DriverManager.getConnection("jdbc:sqlserver://localhost:1036;databasename=nwind",
                                 "sa", "");
                PreparedStatement st = cn.prepareStatement("sps_productos '?'");
                st.setString(1,txt.getText());
            } catch (ClassNotFoundException f) {
                JOptionPane.showMessageDialog(null,
                                              "Clase no encontrada descripciom:\n" +
                                              f.getMessage());
            } catch (SQLException f) {
                JOptionPane.showMessageDialog(null,
                                              "error sql descipcion:\n" + f.getMessage());
                                              System.out.print(f.getMessage());
            }

y me sale este error

Citar
El índice 1 está fuera de intervalo

es una bd sqlserverexpress se conecta sin problemas uso java 6 en win xp


En línea

cornell

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: error prepare statement
« Respuesta #1 en: 23 Febrero 2009, 18:45 pm »

me parece que el problema que tienes es con la parametrización para la BD.

¿sps_productos es un String? si fuese asi. Por ej.:

Código:
String sps_productos = "select * from producto where cod_pro="

Tu parametrización quedaria de esta forma:

Código:
PreparedStatement st = cn.prepareStatement(sps_productos  + "'?'");

Espero te sirva, en lo personal nunca lo he realizado pero he leido bastante de esto.

Saludos.


En línea

Utalca
sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: error prepare statement
« Respuesta #2 en: 23 Febrero 2009, 23:29 pm »

me parece que el problema que tienes es con la parametrización para la BD.

¿sps_productos es un String? si fuese así. Por ej.:

Código:
String sps_productos = "select * from producto where cod_pro="

Tu parametrización quedaria de esta forma:

Código:
PreparedStatement st = cn.prepareStatement(sps_productos  + "'?'");

Espero te sirva, en lo personal nunca lo he realizado pero he leido bastante de esto.

Saludos.


sps_productos es un storeprocedure no es una cadena de texto que contenga una consulta select
En línea

cornell

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: error prepare statement
« Respuesta #3 en: 24 Febrero 2009, 19:53 pm »

Entonces, como estas trabajando con procedimiento almacenado debe ser de esta forma:

Código:

try {
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
      Connection cn = null;
      CallableStatement proc = null;
      cn = DriverManager.getConnection("jdbc:sqlserver://localhost:1036;databasename=nwind","sa", "");

      proc = cn.prepareCall("{ call sps_productos(?) }");
      proc.setString(1,txt.getText());
      proc.execute();

} finally {
      try {
         proc.close();
         cn.close();
      } catch (ClassNotFoundException f) {
           JOptionPane.showMessageDialog(null, "Clase no encontrada descripciom:\n" + f.getMessage());
      } catch (SQLException f) {
           JOptionPane.showMessageDialog(null, "error sql descipcion:\n" + f.getMessage());
           System.out.print(f.getMessage());
      }
}
En línea

Utalca
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Case label '#' not within a switch statement
Programación C/C++
mistaiker 4 12,298 Último mensaje 27 Agosto 2011, 15:35 pm
por Queta
ERROR: Note: #1592 Statement may not be safe to log in statement format.
Bases de Datos
KISKE 8 6,418 Último mensaje 11 Marzo 2013, 19:08 pm
por KISKE
Fatal error: Call to a member function prepare() on a non-object in
PHP
Makroll 3 5,887 Último mensaje 8 Noviembre 2013, 01:02 am
por #!drvy
Cómo preparé un teléfono Android antes de regalárselo a mi abuela
Noticias
wolfbcn 3 2,645 Último mensaje 26 Septiembre 2014, 17:07 pm
por тαптяα
Método PREPARE de PHP me arroja ERROR FATAL!
Bases de Datos
big_ed 7 2,284 Último mensaje 19 Agosto 2019, 23:53 pm
por big_ed
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines