Estou recebendo um erro ao tentar executar um sql com 69 campos, o problema é que da o erro.
java.sql.SQLException: Parameter index out of range (60 > number of parameters, which is 59).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3326)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3310)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3352)
at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:3296)
Segue o código abaixo
public boolean salvar(DupCliente d) {
Connection conn = Conexao.getInstance().getConnection();
boolean r = false;
String dataCad = d.getDataCad();
String dataRev = d.getDataRev();
String dataCom = d.getDataCom();
String dataSal = d.getDataSal();
String dataAlt = d.getDataAlt();
String dataCadMont = "";
String diaCad = dataCad.substring(0, 2);
String mesCad = dataCad.substring(3, 5);
String anoCad = dataCad.substring(6, 9);
if (!diaCad.equals(" ")) {
dataCadMont = anoCad + "-" + mesCad + "-" + diaCad;
}
String dataRevMont = "";
String diaRev = dataRev.substring(0, 2);
String mesRev = dataRev.substring(3, 5);
String anoRev = dataRev.substring(6, 9);
if (!diaRev.equals(" ")) {
dataRevMont = anoRev + "-" + mesRev + "-" + diaRev;
}
String dataComMont = "";
String diaCom = dataCom.substring(0, 2);
String mesCom = dataCom.substring(3, 5);
String anoCom = dataCom.substring(6, 9);
if (!diaCom.equals(" ")) {
dataComMont = anoCom + "-" + mesCom + "-" + diaCom;
}
String dataSalMont = "";
String diaSal = dataSal.substring(0, 2);
String mesSal = dataSal.substring(3, 5);
String anoSal = dataSal.substring(6, 9);
if (!diaSal.equals(" ")) {
dataSalMont = anoSal + "-" + mesSal + "-" + diaSal;
}
String dataAltMont = "";
String diaAlt = dataAlt.substring(0, 2);
String mesAlt = dataAlt.substring(3, 5);
String anoAlt = dataAlt.substring(6, 9);
if (!diaAlt.equals(" ")) {
dataAltMont = anoAlt + "-" + mesAlt + "-" + diaAlt;
}
try {
String sql = "INSERT INTO dupcliente (empresa, numero, nome, mercado, endereco, complemento, bairro, cep, cidade," +
"estado, telefone, fax, cnpj, inscricao, limite, dataCad, dataRev, dataCom, dataSal, maiorSaldo, valorUltCom," +
"suframa, regiao, contato, seqCnpj, pessoa, tipo, status, contaCtb, contaGer, exporta, saldo, email, codCidade," +
"site, usuCad, usuRev, usuAlt, dataAlt, tipoNota, codTrans, formaPag, condPag11, condPag12, condPag13, condPag14,"+
" condPag15, condPag16, formaPag2, condPag21, condPag22, condPag23, condPag24, condPag25, condPag26, tipoFrete, repAssist," +
"comAssist, negocioTab, codTab, desconto, geraNotaDeb, pais, ddd, prefixo, numTel, faxDdd, faxPrefixo, faxNumTel)" +
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement sta = conn.prepareStatement(sql);
sta.setInt(1, d.getEmpresa());
sta.setInt(2, d.getNumero());
sta.setString(3, d.getNome());
sta.setInt(4, d.getMercado());
sta.setString(5, d.getEndereco());
sta.setString(6, d.getComplemento());
sta.setString(7, d.getBairro());
sta.setInt(8, d.getCep());
sta.setString(9, d.getCidade());
sta.setString(10, d.getEstado());
sta.setString(11, d.getTelefone());
sta.setString(12, d.getFax());
sta.setFloat(13, d.getCgc());
sta.setString(14, d.getInscricao());
sta.setFloat(15, d.getLimite());
sta.setString(16, dataCadMont);
sta.setString(17, dataRevMont);
sta.setString(18, dataComMont);
sta.setString(19, dataSalMont);
sta.setFloat(20, d.getMaiorSaldo());
sta.setFloat(21, d.getValUltCompra());
sta.setString(22, d.getSuframa());
sta.setInt(23, d.getRegiao());
sta.setString(24, d.getContato());
sta.setInt(25, d.getSeqCnpj());
sta.setString(26, d.getPessoa());
sta.setInt(27, d.getTipo());
sta.setInt(28, d.getStatus());
sta.setInt(29, d.getContaCtb());
sta.setInt(30, d.getContaGer());
sta.setInt(31, d.getExporta());
sta.setFloat(32, d.getSaldo());
sta.setString(33, d.getEmail());
sta.setInt(34, d.getCodCidade());
sta.setString(35, d.getSite());
sta.setString(36, d.getUsuCad());
sta.setString(37, d.getUsuRev());
sta.setString(38, d.getUsuAlt());
sta.setString(39, dataAltMont);
sta.setInt(40, d.getTipoNota());
sta.setInt(41, d.getCodTrans());
sta.setInt(42, d.getFormaPag());
sta.setInt(43, d.getCondPag11());
sta.setInt(44, d.getCondPag12());
sta.setInt(45, d.getCondPag13());
sta.setInt(46, d.getCondPag14());
sta.setInt(47, d.getCondPag15());
sta.setInt(48, d.getCondPag16());
sta.setInt(49, d.getFormaPag2());
sta.setInt(50, d.getCondPag21());
sta.setInt(51, d.getCondPag22());
sta.setInt(52, d.getCondPag23());
sta.setInt(53, d.getCondPag24());
sta.setInt(54, d.getCondPag25());
sta.setInt(55, d.getCondPag26());
sta.setInt(56, d.getTipoFrete());
sta.setInt(57, d.getRepAssist());
sta.setFloat(58, d.getComAssist());
sta.setInt(59, d.getNegocioTab());
sta.setInt(60, d.getCodTab());
sta.setFloat(61, d.getDesconto());
sta.setString(62, d.getGeraNotaDev());
sta.setInt(63, d.getPais());
sta.setInt(64, d.getDdd());
sta.setInt(65, d.getPrefixo());
sta.setInt(66, d.getNumTel());
sta.setInt(67, d.getFaxDdd());
sta.setInt(68, d.getFaxPrefixo());
sta.setInt(69, d.getFaxNumTel());
sta.executeUpdate();
sta.close();
r = true;
} catch (SQLException e) {
e.printStackTrace();
r = false;
}
return r;
}