Erro ao recuperar objetos do BD e armazenar em um vector

2 respostas
loganwlogan

Bom dia amigos,

Eu to com um problema estranho, criei um método que busca 59 colunas de uma determinada tabale do Banco, ele cria o objeto e o armazena em um vetor. ele faz tudo certinho, contudo depois que ele faz o último ele dispara a seguinte exceção "Erro: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Índice de descritor inválido" não entendo pq ta dando isso algém pode me ajudar, a baixo apresento o código do método

public Vector buscaTodasMedidas(){

Vector vMedidas = new Vector();

int codigo = 0;

try{

this.conect();

st = con.createStatement();

String sql = "SELECT * from tab_Entrevista ORDER BY CódigoEntrevista";

rs = st.executeQuery(sql);

int j = 1;

while(rs.next()){

Medidas medidas = new Medidas();

MedidasAlturaPelvis alturaPelvis;

MedidasAlturasLaterais alturasLaterais;

MedidasApoio apoio;

MedidasBraco braco;

MedidasCabecaPescoco cabecaPescoco;

MedidasCinturaQuadrilParcial cinturaQuadrilParcial;

MedidasCinturaQuadrilTotal cinturaQuadrilTotal;

MedidasCircunferenciaBusto circunferenciaBusto;

MedidasCorpoSuperior corpoSuperior;

MedidasEstaturaTronco estaturaTronco;

MedidasMaoDedo maoDedo;

MedidasOmbro ombro;

MedidasPernaPe pernaPe;

codigo = Integer.parseInt(rs.getString(2));

System.out.println("******<em><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>inicio nº : " + codigo + "</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></em>");

double IA = Double.parseDouble(rs.getString(40));

System.out.println(IA);

double IB =  Double.parseDouble(rs.getString(41));

System.out.println(IB);

double IC =  Double.parseDouble(rs.getString(42));

System.out.println(IC);

double ID =  Double.parseDouble(rs.getString(43));

System.out.println(ID);

double IE =  Double.parseDouble(rs.getString(44));

System.out.println(IE);

double IIA =  Double.parseDouble(rs.getString(45));

System.out.println(IIA);

double IIB =  Double.parseDouble(rs.getString(46));

System.out.println(IIB);

double IIC =  Double.parseDouble(rs.getString(47));

System.out.println(IIC);

double IID =  Double.parseDouble(rs.getString(48));

System.out.println(IID);

double IIE =  Double.parseDouble(rs.getString(49));

System.out.println(IIE);

double IIIA =  Double.parseDouble(rs.getString(50));

System.out.println("3A: " + IIIA);

double IIIB =  Double.parseDouble(rs.getString(51));

System.out.println(IIIB);

double IIIC =  Double.parseDouble(rs.getString(52));

System.out.println(IIIC);

double IIID =  Double.parseDouble(rs.getString(53));

System.out.println(IIID);

double IVA =  Double.parseDouble(rs.getString(54));

System.out.println(IVA);

double IVB =  Double.parseDouble(rs.getString(55));

System.out.println(IVB);

double IVC =  Double.parseDouble(rs.getString(56));

System.out.println(IVC);

double IVD =  Double.parseDouble(rs.getString(57));

System.out.println(IVD);

double IVE =  Double.parseDouble(rs.getString(58));

System.out.println(IVE);

double VA =  Double.parseDouble(rs.getString(59));

System.out.println(VA);

double VB =  Double.parseDouble(rs.getString(60));

System.out.println(VB);

double VC =  Double.parseDouble(rs.getString(61));

System.out.println(VC);

double VD =  Double.parseDouble(rs.getString(62));

System.out.println(VD);

double VIA =  Double.parseDouble(rs.getString(63));

System.out.println(VIA);

double VIB =  Double.parseDouble(rs.getString(64));

System.out.println(VIB);

double VIC =  Double.parseDouble(rs.getString(65));

System.out.println(VIC);

double VIIA =  Double.parseDouble(rs.getString(66));

System.out.println(VIIA);

double VIIB =  Double.parseDouble(rs.getString(67));

System.out.println(VIIB);

double VIIC =  Double.parseDouble(rs.getString(68));

System.out.println(VIIC);

double VIIIA =  Double.parseDouble(rs.getString(69));

System.out.println(VIIIA);

double VIIIB =  Double.parseDouble(rs.getString(70));

System.out.println(VIIIB);

double VIIIC =  Double.parseDouble(rs.getString(71));

System.out.println(VIIIC);

double IXA =  Double.parseDouble(rs.getString(72));

System.out.println(IXA);

double IXB =  Double.parseDouble(rs.getString(73));

System.out.println(IXB);

double IXC =  Double.parseDouble(rs.getString(74));

System.out.println(IXC);

double IXD =  Double.parseDouble(rs.getString(75));

System.out.println(IXD);

double XA =  Double.parseDouble(rs.getString(76));

System.out.println(XA);

double XB =  Double.parseDouble(rs.getString(77));

System.out.println(XB);

double XC =  Double.parseDouble(rs.getString(78));

System.out.println(XC);

double XD =  Double.parseDouble(rs.getString(79));

System.out.println(XD);

double XE =  Double.parseDouble(rs.getString(80));

System.out.println(XE);

double XIA =  Double.parseDouble(rs.getString(81));

System.out.println(XIA);

double XIB =  Double.parseDouble(rs.getString(82));

System.out.println(XIB);

double XIC =  Double.parseDouble(rs.getString(83));

System.out.println(XIC);

double XID =  Double.parseDouble(rs.getString(84));

System.out.println(XID);

double XIE =  Double.parseDouble(rs.getString(85));

System.out.println(XIE);

double XIF =  Double.parseDouble(rs.getString(86));

System.out.println(XIF);

double XIIA =  Double.parseDouble(rs.getString(87));

System.out.println(XIIA);

double XIIB =  Double.parseDouble(rs.getString(88));

System.out.println(XIIB);

double XIIC =  Double.parseDouble(rs.getString(89));

System.out.println(XIIC);

double XIID =  Double.parseDouble(rs.getString(90));

System.out.println(XIID);

double XIIE =  Double.parseDouble(rs.getString(91));

System.out.println(XIIE);

double XIIIA =  Double.parseDouble(rs.getString(92));

System.out.println(XIIIA);

double XIIIB =  Double.parseDouble(rs.getString(93));

System.out.println(XIIIB);

double XIIIC =  Double.parseDouble(rs.getString(94));

System.out.println(XIIIC);

double XIIID =  Double.parseDouble(rs.getString(95));

System.out.println(XIIID);

double XIIIE =  Double.parseDouble(rs.getString(96));

System.out.println(XIIIE);

double XIVA =  Double.parseDouble(rs.getString(97));

System.out.println(XIVA);

double XIVB =  Double.parseDouble(rs.getString(98));

System.out.println(XIVB);

System.out.println("******<em><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Fim</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></em>");

alturaPelvis = new MedidasAlturaPelvis(XIVA, XIVB);

alturasLaterais = new MedidasAlturasLaterais(VA, VB, VC, VD);

apoio = new MedidasApoio(VIA, VIB, VIC);

braco = new MedidasBraco(XIA, XIB, XIC, XID, XIE, XIF);

cabecaPescoco = new MedidasCabecaPescoco(IA, IB, IC, ID, IE);

cinturaQuadrilParcial = new MedidasCinturaQuadrilParcial(IXA, IXB, IXC, IXD);

cinturaQuadrilTotal = new MedidasCinturaQuadrilTotal(VIIIA, VIIIB, VIIIC);

circunferenciaBusto = new MedidasCircunferenciaBusto(VIIA, VIIB, VIIC);

corpoSuperior = new MedidasCorpoSuperior(IVA, IVB, IVC, IVD, IVE);

estaturaTronco = new MedidasEstaturaTronco(IIA, IIB, IIC, IID, IIE);

maoDedo = new MedidasMaoDedo(XIIA, XIIB, XIIC, XIID, XIIE, XIIIA, XIIIB, XIIIC, XIIID, XIIIE);

ombro = new MedidasOmbro(IIIA, IIIB, IIIC, IIID);

pernaPe = new MedidasPernaPe(XA, XB, XC, XD, XE);

medidas = new Medidas(alturaPelvis, alturasLaterais, apoio, braco, cabecaPescoco, cinturaQuadrilParcial,

cinturaQuadrilTotal, circunferenciaBusto, corpoSuperior, estaturaTronco, maoDedo, ombro, pernaPe);

vMedidas.add(medidas);

}

for(int i = 0; i &lt 107; i++){

System.out.println("Campo: " + i + " Valor: " + rs.getString(i));

}

}catch(Exception e){

JOptionPane.showMessageDialog(null, codigo + " Erro na busca de Todos os Registros" + e);

System.out.println("Erro: " + e);

}
return vMedidas;
}

2 Respostas

T

O erro está obviamente aqui. Você deveria estar imprimindo vMedidas, não rs.

for(int i = 0; i &lt 107; i++){
System.out.println("Campo: " + i + " Valor: " + rs.getString(i));
}

Além disso, de onde você tirou esse valor mágico 107? Se fosse 137 seria uma constante da física quântica :stuck_out_tongue: . Use vMedidas.size()

loganwlogan

Valeu mesmo tingol, dei muito mole nisso agora mas vivendo e aprendendo.

abçs

Logan

Criado 28 de setembro de 2006
Ultima resposta 28 de set. de 2006
Respostas 2
Participantes 2