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

Problema con sentencia SQL y distinct

Estas en el tema de Problema con sentencia SQL y distinct en el foro de Java en Foros del Web. A los buenos dias....... Tengo un problema ya que necesito sacar unos datos de mi base pero no quiero los que esten repetidos y despues ...
  #1 (permalink)  
Antiguo 06/08/2007, 01:52
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Exclamación Problema con sentencia SQL y distinct

A los buenos dias.......
Tengo un problema ya que necesito sacar unos datos de mi base pero no quiero los que esten repetidos y despues meterlos en una combo. Todo me funciona correctamente si en la sentencia no pongo la palabra distinct.
Si pongo la sentencia como deberia me salta un error de estado del cursor no valido

Esta es la sentencia
Cita:
String sql = "select distinct unidadCultivo from unidadCultivo";
Alguna idea??
  #2 (permalink)  
Antiguo 06/08/2007, 04:45
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con sentencia SQL y distinct

Este es un problema de SQL, mas que de Java, pero igualmente... ¿unidadCultivo es un campo dentro de la tabla unidadCultivo?

S!
  #3 (permalink)  
Antiguo 06/08/2007, 05:08
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

sisisisisi se llaman =, hay alguna forma de solucionarlo????
  #4 (permalink)  
Antiguo 06/08/2007, 08:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con sentencia SQL y distinct

Bueno, no se si tendra que ver con el error pero no es muy buena idea que los dos nombres sean iguales.

Respecto al error, pues habría que ver el error completo y exactamente la linea en que te da, si no, es complicado.

S!
  #5 (permalink)  
Antiguo 07/08/2007, 00:32
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

El error que me da es el de estado del cursor no valido y me da en la linea donde recibo el contenido del resulset rs.getString(1);

Cita:
java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] Estado del cursor no válido
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unkn own Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at cfa.unidades_cultivo.cargarCombo(unidades_cultivo. java:344)
at cfa.unidades_cultivo.jbInit(unidades_cultivo.java: 309)
at cfa.unidades_cultivo.<init>(unidades_cultivo.java: 96)
at cfa.PI_pesProductor.bt_unidades_actionPerformed(PI _pesProductor.java:274)
at cfa.PI_pesProductor_bt_unidades_actionAdapter.acti onPerformed(PI_pesProductor.java:331)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Cita:
rs = orden.executeQuery(sql);
rs.beforeFirst();
do{
rs.next();
jCB_unidad.addItem(rs.getString("unidadCultivo")); -->aqui es la linea del error
}while(rs.isLast()==false);

Última edición por Power_3L; 07/08/2007 a las 01:06
  #6 (permalink)  
Antiguo 07/08/2007, 03:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con sentencia SQL y distinct

Has probado con un simple...
Código:
rs = orden.executeQuery(sql);
while(rs.next())
{
  jCB_unidad.addItem(rs.getString("unidadCultivo"));
}
O en todo caso, prueba con rs.getString(1);

El error parece en si un problema con el ODBC que hay por debajo, ya que segun que tratamiento con los cursores no le gusta. Así que cuanto más simple lo hagas, mejor.

S!
  #7 (permalink)  
Antiguo 07/08/2007, 04:20
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

Na hijo no hay manera he probado las que dices y na me sigue saltando ese error(en la misma linea) y todo por el DISTINCT de las narices no se como hacerlo pa que no me de error y no me les repita
  #8 (permalink)  
Antiguo 07/08/2007, 09:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con sentencia SQL y distinct

Que raro. Es una tonteria pero... ¿la BDD que usas soporta esa construccion? A todo esto... ¿cual es?

S!
  #9 (permalink)  
Antiguo 08/08/2007, 00:37
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

es una bd access simple y llana no tiene nada raro ni na.
El error ya no me le da si quito el distinct pero claro lo que necesito que me devuelva son todos pero sin que se repitan otra manera de hacerlo?
  #10 (permalink)  
Antiguo 10/08/2007, 00:26
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

Q nadie me puede ayudarmeeeeeeee
  #11 (permalink)  
Antiguo 16/08/2007, 04:52
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

Siempre Que Tengo Que Usar La Sentencia Distinct En Un Resultset Me Salta Un Error De Estado De Cursor No Valido.

Hay Alguna Forma De Solucionar Este Problema!!!!!!!!!!!!!!!!!

Necesito Usar El Distinct Para Discrimiar Los Datos Repetidos En La Consulta Si Hay Otra Forma De Hacerlo Me Gustaria Saberlo.....
  #12 (permalink)  
Antiguo 16/08/2007, 15:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Problema con sentencia SQL y distinct

Antes que nada he de hacerte una humilde recomendación.

No uses Access!!

Tienes a la mano a MySQL o a Possgress o en su defecto bien puedes usar la versión Express de SQL Server.

Este mismo error me paso hace unos meses, cuando me dejaron migra un sistema hecho en VB a una version Java. Lo primero que hice solo por probar las consultas, insersiones, actualizaciones, etc fué conectarme desde Java ala BD que me dieron, que estab hecha en Access.

Mi problema empezo cuando me desplazaba por los JTables, cuanod lo hacia, es cuanod me lanzaba esa excepción.

Al momento no pude solucionarlo y no me intereso en esforzarme por hacerlo puesto que solo era una prueba y la nueva BD la haria en MySQL.

Como comentan, Access tien algunos problemas con esto de los cursores.

Al momento de crear tu conexión, verifica que en tu sentencia createStatement la tengas sin NINGUN parámetro...

Recibe un cordial saludo!!
  #13 (permalink)  
Antiguo 17/08/2007, 01:02
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Antigüedad: 17 años
Puntos: 3
Re: Problema con sentencia SQL y distinct

La movie es que es la BD de datos que usan en el trabajo, que cuando llege dige madre con lo buena y barata que es MySQl, asi que de momento no le puedo hacer otra cosa que trabajar con ella.
La sentencia esta bien el error esta cuando hago la select con distinct que me salta el error ya que si la misma sentencia la quito el distinct me funciona a las mil maravillas
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 10:06.