problema con resultset
Publicado por gzapata (2 intervenciones) el 28/09/2009 17:03:37
Hola tengo el siguiente esquema:
strSQL = "SELECT AntAA_ajustada, Edad, count(1) as CASOS " +
" FROM VPOT_RESULT_SEP2009 " +
" Where Sexo = 'M' " +
" GROUP BY AntAA_ajustada, Edad";
casosM = generarMatriz(dc,strSQL,c.NOCALCULAPROMEDIO);
y la funcion es esta:
public Object generarMatriz(DataBaseConnections dc,String strSQL,int Prom){
int[][] casos = new int [c.ANTIGUEDADMAXIMA-c.ANTIGUEDADMINIMA+1][c.EDADMAXIMA-c.EDADMINIMA+1];
double[][] salProm = new double [c.ANTIGUEDADMAXIMA-c.ANTIGUEDADMINIMA+1][c.EDADMAXIMA-c.EDADMINIMA+1];
ResultSet rs = null;
rs = dc.ExecSql(strSQL);
int lin = 0;
int col = 0;
long cuenta = 0;
try {
rs.last();
cuenta = rs.getRow();
System.out.println("cuenta = "+ cuenta);
cuenta = 0;
rs.beforeFirst();
while(rs.next()){
// for (long i=0;i<cuenta;i++){
lin = rs.getInt("AntAA_ajustada") - c.ANTIGUEDADMINIMA + 1;
col = rs.getInt("Edad")- c.EDADMINIMA + 1;
casos[0][col] =rs.getInt("Edad");
casos[lin][0] = rs.getInt("AntAA_ajustada");
cuenta += 1;
if (Prom==0){
casos[lin][col]= rs.getInt(3);
}else{
salProm[lin][col]=
(Double) rs.getDouble(4)/rs.getInt(3);
}
// rs.next();
}
rs.close();
}catch (Exception e){
e.printStackTrace();
dc.closeConnections();
}
System.out.println(cuenta);
return Prom==0?casos:salProm;
}
El problema es que en lugar de obtener los registros agrupados, me obtiene el total de registros sin agrupar y esto me ocasiona el siguiente mensaje:
java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] Estado del cursor no válido
alguien me puede ayudar en este extraño caso:
Gracias
strSQL = "SELECT AntAA_ajustada, Edad, count(1) as CASOS " +
" FROM VPOT_RESULT_SEP2009 " +
" Where Sexo = 'M' " +
" GROUP BY AntAA_ajustada, Edad";
casosM = generarMatriz(dc,strSQL,c.NOCALCULAPROMEDIO);
y la funcion es esta:
public Object generarMatriz(DataBaseConnections dc,String strSQL,int Prom){
int[][] casos = new int [c.ANTIGUEDADMAXIMA-c.ANTIGUEDADMINIMA+1][c.EDADMAXIMA-c.EDADMINIMA+1];
double[][] salProm = new double [c.ANTIGUEDADMAXIMA-c.ANTIGUEDADMINIMA+1][c.EDADMAXIMA-c.EDADMINIMA+1];
ResultSet rs = null;
rs = dc.ExecSql(strSQL);
int lin = 0;
int col = 0;
long cuenta = 0;
try {
rs.last();
cuenta = rs.getRow();
System.out.println("cuenta = "+ cuenta);
cuenta = 0;
rs.beforeFirst();
while(rs.next()){
// for (long i=0;i<cuenta;i++){
lin = rs.getInt("AntAA_ajustada") - c.ANTIGUEDADMINIMA + 1;
col = rs.getInt("Edad")- c.EDADMINIMA + 1;
casos[0][col] =rs.getInt("Edad");
casos[lin][0] = rs.getInt("AntAA_ajustada");
cuenta += 1;
if (Prom==0){
casos[lin][col]= rs.getInt(3);
}else{
salProm[lin][col]=
(Double) rs.getDouble(4)/rs.getInt(3);
}
// rs.next();
}
rs.close();
}catch (Exception e){
e.printStackTrace();
dc.closeConnections();
}
System.out.println(cuenta);
return Prom==0?casos:salProm;
}
El problema es que en lugar de obtener los registros agrupados, me obtiene el total de registros sin agrupar y esto me ocasiona el siguiente mensaje:
java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] Estado del cursor no válido
alguien me puede ayudar en este extraño caso:
Gracias
Valora esta pregunta


0