hola,
primero que nada, no necesitas recorrer el recorset para contarlo..
.. jdbc ya te dice cuantos resultados tiene.. usas para eso si no me equivoco el metodo getFetchSize() .. aunque no recuerdo si era este, hace mucho que no uso JDBC
... ahora uso ojb o hibernate.
sobre tu segundo problema.. el null pointer.. no estoy seguro, habria que ver como funcionan los parametros de salida, pero supongo que tal vez, el problema es que no le estas pasando nada por referencia... a lo que me refiero, es a que en este punto:
int Num = Var.Consulta(gMsgError,columnas,tabla,strDatos,Rs) ;
rs es null, y por lo tanto, no es una referencia válida, entonces, java no tiene forma de asociarlo con el recordset que se crea dentro del metodo Consulta.
Como te dije, no estoy seguro, pero se puede verificar probando algo simple.. usando un array.. en lugar de pasarle un Rs, pasale un array de ResultSets.. o sea, algo asi:
en el jsp:
ResultSet[] ars = new ResultSet[0];
int Num = Var.Consulta(gMsgError,columnas,tabla,strDatos,ars ) ;
ResultSet rs = ars[0];
y en tu clase:
public int Consulta(String msgError,String columnas,String tabla,String datos[],ResultSet[] Rs) throws ClassNotFoundException{
[...]
Rs[0] = St.executeQuery(str);
[...]
}
espero que te sirva...