parameterValues[i] = null;
return;
}
Type outType = parameterTypes[i];
switch (outType.typeCode) {
case Types.OTHER :
try {
if (o instanceof Serializable) {
o = new JavaObjectData((Serializable) o);
break;
}
} catch (HsqlException e) {
Util.throwError(e);
}
Util.throwError(Error.error(ErrorCode.X_42563));
break;
case Types.SQL_BIT :
case Types.SQL_BIT_VARYING :
try {
if (o instanceof Boolean) {
o = outType.convertToDefaultType(session, o);
break;
}
if (o instanceof Integer) {
o = outType.convertToDefaultType(session, o);
break;
}
if (o instanceof byte[]) {
o = outType.convertToDefaultType(session, o);
break;
}
if (o instanceof String) {
o = outType.convertToDefaultType(session, o);
break;
}
} catch (HsqlException e) {
Util.throwError(e);
}
Util.throwError(Error.error(ErrorCode.X_42563));
// fall through
case Types.SQL_BINARY :
case Types.SQL_VARBINARY :
if (o instanceof byte[]) {
o = new BinaryData((byte[]) o, !connection.isNetConn);
break;
}
try {
if (o instanceof String) {
o = outType.convertToDefaultType(session, o);
break;
}
} catch (HsqlException e) {
Util.throwError(e);
}
Util.throwError(Error.error(ErrorCode.X_42563));
break;
case Types.SQL_ARRAY :
if ( o instanceof Array) {
setArray(i + 1, (Array) o);
return;
}
Util.throwError(Error.error(ErrorCode.X_42563));
case Types.SQL_BLOB :
setBlobParameter(i + 1, o);
return;
case Types.SQL_CLOB :
setClobParameter(i + 1, o);
return;
case Types.SQL_DATE :
case Types.SQL_TIME_WITH_TIME_ZONE :
case Types.SQL_TIMESTAMP_WITH_TIME_ZONE :
case Types.SQL_TIME :
case Types.SQL_TIMESTAMP : {
try {
if (o instanceof String) {
o = outType.convertToType(session, o,
Type.SQL_VARCHAR);
break;
}
o = outType.convertJavaToSQL(session, o);
break;
} catch (HsqlException e) {
Util.throwError(e);
}
}
// fall through
case Types.TINYINT :
case Types.SQL_SMALLINT :
case Types.SQL_INTEGER :
case Types.SQL_BIGINT :
case Types.SQL_REAL :
case Types.SQL_FLOAT :
case Types.SQL_DOUBLE :
case Types.SQL_NUMERIC :
case Types.SQL_DECIMAL :
try {
if (o instanceof String) {
o = outType.convertToType(session, o,
Type.SQL_VARCHAR);
break;
}
o = outType.convertToDefaultType(session, o);
break;
} catch (HsqlException e) {
Util.throwError(e);
}
// fall through
default :
try {
o = outType.convertToDefaultType(session, o);
break;
} catch (HsqlException e) {
Util.throwError(e);
}