Author: sumedha
Date: Sat Jan 19 01:41:13 2008
New Revision: 12507
Log:
In INOUT case, parameter has a incoming value as well. Setting incomming value
to callable statement
Modified:
branches/wsas/java/2.2/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java
Modified:
branches/wsas/java/2.2/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java
==============================================================================
---
branches/wsas/java/2.2/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java
(original)
+++
branches/wsas/java/2.2/commons/data-services/src/main/java/org/wso2/ws/dataservice/DBUtils.java
Sat Jan 19 01:41:13 2008
@@ -134,7 +134,7 @@
String paramName =
param.getAttributeValue(new QName("name"));
String sqlType =
param.getAttributeValue(new QName("sqlType"));
//default is IN type
- if(inOutType == null){
+ if(inOutType == null ||
inOutType.trim().length() == 0){
inOutType = "IN";
}
@@ -1339,6 +1339,9 @@
// Defaults to string
if("IN".equals(paramType)){
sqlQuery.setString(i + 1, value);
+ }else if("INOUT".equals(paramType)){
+ sqlQuery.setString(i + 1, value);
+
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.VARCHAR);
}else{
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.VARCHAR);
}
@@ -1349,6 +1352,9 @@
}else{
((CallableStatement)sqlQuery).setInt(i + 1, Integer.parseInt(value));
}
+ }else if("INOUT".equals(paramType)){
+ ((CallableStatement)sqlQuery).setInt(i
+ 1, Integer.parseInt(value));
+
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.INTEGER);
}else{
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.INTEGER);
}
@@ -1359,6 +1365,9 @@
}else{
((CallableStatement)sqlQuery).setString(i + 1, value);
}
+ }else if("INOUT".equals(paramType)){
+
((CallableStatement)sqlQuery).setString(i + 1, value);
+
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.VARCHAR);
}else{
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.VARCHAR);
}
@@ -1376,15 +1385,18 @@
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.DOUBLE);
}
}else if(DBConstants.DataTypes.DATE.equals(sqlType)){
- try{
+ try{
+ //Only yyyy-MM-dd part is needed
+ String modifiedValue = value.substring(0, 10);
if("IN".equals(paramType)){
- //Only yyyy-MM-dd part is needed
- String modifiedValue =
value.substring(0, 10);
if("SQL".equals(callee)){
sqlQuery.setDate(i+1,
Date.valueOf(modifiedValue));
}else{
((CallableStatement)sqlQuery).setDate(i+1, Date.valueOf(modifiedValue));
}
+ }else if("INOUT".equals(paramType)){
+
((CallableStatement)sqlQuery).setDate(i+1, Date.valueOf(modifiedValue));
+
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.DATE);
}else{
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.DATE);
}
@@ -1394,24 +1406,30 @@
+paramName+".Date should be in yyyy-mm-dd
format.", e);
}
}else
if(DBConstants.DataTypes.TIMESTAMP.equals(sqlType)){
+ Timestamp timestamp =
getTimestamp(value,paramName);
if("IN".equals(paramType)){
- Timestamp timestamp =
getTimestamp(value,paramName);
if("SQL".equals(callee)){
sqlQuery.setTimestamp(i+1,timestamp);
}else{
((CallableStatement)sqlQuery).setTimestamp(i+1,timestamp);
}
+ }else if("INOUT".equals(paramType)){
+
((CallableStatement)sqlQuery).setTimestamp(i+1,timestamp);
+
((CallableStatement)sqlQuery).registerOutParameter(i+1,
java.sql.Types.TIMESTAMP);
}else{
((CallableStatement)sqlQuery).registerOutParameter(i+1,
java.sql.Types.TIMESTAMP);
}
}else if(DBConstants.DataTypes.TIME.equals(sqlType)){
- if("IN".equals(paramType)){
- Time time = getTime(value,paramName);
+ Time time = getTime(value,paramName);
+ if("IN".equals(paramType)){
if("SQL".equals(callee)){
sqlQuery.setTime(i+1,time);
}else{
((CallableStatement)sqlQuery).setTime(i+1,time);
}
+ }else if("INOUT".equals(paramType)){
+
((CallableStatement)sqlQuery).setTime(i+1,time);
+
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.TIME);
}else{
((CallableStatement)sqlQuery).registerOutParameter(i+1, java.sql.Types.TIME);
}
_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev