Error de insercion en base de datos
Mi codigo es el siguiente y en el cual ago una insercion recursiva de datos, lo cual va bien hasta el momento en el cual la insercion es de mas de una iteracion; aunque al final de todo y con todo y el error las cosas parecieran ir muy bien.
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<%@ page language="java" import="java.util.*" %>
<%@ page language="java" import="java.lang.String.*" %>
<%@ page import="java.util.*" session="false"%>
<%@ page import="java.util.Vector" session="false"%>
<%
HttpSession sesion=request.getSession();
String DRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
String URL="jdbc:odbc:respaldos";
String pedido=request.getParameter("idpedido");
Vector partep=(Vector)sesion.getAttribute("partep");
Vector idtipo=(Vector)sesion.getAttribute("idtipop");
Vector descrivep=(Vector)sesion.getAttribute("descrivep");
Vector costop=(Vector)sesion.getAttribute("costop");
Vector cantp=(Vector)sesion.getAttribute("cantp");
String iddetped="";
String idproducto="";
String cantidad="";
String precio="";
String numorden="1";
String prodreut="F";
String delaborado="F";
String dcocina="F";
String precioreal="";
Integer Renglon=(Integer)cantp.size();
int r=0;
while( r<Renglon){
iddetped=String.valueOf(r+1);
idproducto=(String)idtipo.get(r);
cantidad=(String)cantp.get(r);
precio=(String)costop.get(r);
precioreal=(String)costop.get(r);
Driver Driverr=(Driver)Class.forName(DRIVER).newInstance();
Connection Conexion=DriverManager.getConnection(URL);
PreparedStatement stmt=Conexion.prepareStatement("INSERT INTO DET_PEDIDO (ID_PEDIDO, ID_DET_PED, ID_PRODUCTO, CANTIDAD, PRECIO, NUM_ORDEN, PROD_REUT, D_ELABORADO, D_COCINA, PRECIO_REAL)"+ " VALUES(?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1,pedido);
stmt.setString(2,iddetped);
stmt.setString(3,idproducto);
stmt.setString(4,cantidad);
stmt.setString(5,precio);
stmt.setString(6,numorden);
stmt.setString(7,prodreut);
stmt.setString(8,delaborado);
stmt.setString(9,dcocina);
stmt.setString(10,precioreal);
stmt.executeUpdate();
stmt.close();
stmt = null;
Conexion.close();
r++;
}
%>
el error mostrado es el siguiente
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 2
Lo curioso aqui es que al verificar los datos insertados son correctos y corresponden exactamente a los registros que quise afectar
Agradeceria y me ayudasen
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<%@ page language="java" import="java.util.*" %>
<%@ page language="java" import="java.lang.String.*" %>
<%@ page import="java.util.*" session="false"%>
<%@ page import="java.util.Vector" session="false"%>
<%
HttpSession sesion=request.getSession();
String DRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
String URL="jdbc:odbc:respaldos";
String pedido=request.getParameter("idpedido");
Vector partep=(Vector)sesion.getAttribute("partep");
Vector idtipo=(Vector)sesion.getAttribute("idtipop");
Vector descrivep=(Vector)sesion.getAttribute("descrivep");
Vector costop=(Vector)sesion.getAttribute("costop");
Vector cantp=(Vector)sesion.getAttribute("cantp");
String iddetped="";
String idproducto="";
String cantidad="";
String precio="";
String numorden="1";
String prodreut="F";
String delaborado="F";
String dcocina="F";
String precioreal="";
Integer Renglon=(Integer)cantp.size();
int r=0;
while( r<Renglon){
iddetped=String.valueOf(r+1);
idproducto=(String)idtipo.get(r);
cantidad=(String)cantp.get(r);
precio=(String)costop.get(r);
precioreal=(String)costop.get(r);
Driver Driverr=(Driver)Class.forName(DRIVER).newInstance();
Connection Conexion=DriverManager.getConnection(URL);
PreparedStatement stmt=Conexion.prepareStatement("INSERT INTO DET_PEDIDO (ID_PEDIDO, ID_DET_PED, ID_PRODUCTO, CANTIDAD, PRECIO, NUM_ORDEN, PROD_REUT, D_ELABORADO, D_COCINA, PRECIO_REAL)"+ " VALUES(?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1,pedido);
stmt.setString(2,iddetped);
stmt.setString(3,idproducto);
stmt.setString(4,cantidad);
stmt.setString(5,precio);
stmt.setString(6,numorden);
stmt.setString(7,prodreut);
stmt.setString(8,delaborado);
stmt.setString(9,dcocina);
stmt.setString(10,precioreal);
stmt.executeUpdate();
stmt.close();
stmt = null;
Conexion.close();
r++;
}
%>
el error mostrado es el siguiente
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 2
Lo curioso aqui es que al verificar los datos insertados son correctos y corresponden exactamente a los registros que quise afectar
Agradeceria y me ayudasen
