if(listOfParameters != null){
//get the size of result set
int resultSetSize = 0;
Iterator iteratorOfParameters = listOfParameters.iterator();
while(iteratorOfParameters.hasNext()){
ParameterInfo parameter = (ParameterInfo)iteratorOfParameters.next();
if(parameter.getType() == ParameterInfo.RESULT_SET){
resultSetSize = parameter.getNumColumns();
//one ResultSet only
break;
}
}
//return needs to be the first
int index = 0; //index in user call - {?=call sp(?)}
int count = 0;
iteratorOfParameters = listOfParameters.iterator();
while(iteratorOfParameters.hasNext()){
ParameterInfo parameter = (ParameterInfo)iteratorOfParameters.next();
if(parameter.getType() == ParameterInfo.RETURN_VALUE){
count++;
index++;
outParamIndexMap.put(new Integer(index), new Integer(resultSetSize + count));
break;
}
}
iteratorOfParameters = listOfParameters.iterator();
while(iteratorOfParameters.hasNext()){
ParameterInfo parameter = (ParameterInfo)iteratorOfParameters.next();
if(parameter.getType() != ParameterInfo.RETURN_VALUE && parameter.getType() != ParameterInfo.RESULT_SET){
index++;
if(parameter.getType() == ParameterInfo.OUT || parameter.getType() == ParameterInfo.INOUT){
count++;
outParamIndexMap.put(new Integer(index), new Integer(resultSetSize + count));
}
}
}