ps.setNull(paramIndex, sqlType);
}
}
else if (inValue instanceof DataValue) {
// work out the correct type to call
DataValue value = (DataValue)inValue;
if (value instanceof TextData) {
if (value.isNull()) {
ps.setNull(paramIndex, Types.VARCHAR);
}
else {
ps.setString(paramIndex, inValue.toString());
}
}
else if (value instanceof IntegerData) {
if (value.isNull()) {
ps.setNull(paramIndex, Types.INTEGER);
}
else {
ps.setInt(paramIndex, ((IntegerData)value).intValue());
}
}
else if (value instanceof DecimalData) {
if (value.isNull()) {
ps.setNull(paramIndex, Types.DOUBLE);
}
else {
ps.setDouble(paramIndex, ((DecimalData)value).doubleValue());
}
}
else if (value instanceof DoubleData) {
if (value.isNull()) {
ps.setNull(paramIndex, Types.DOUBLE);
}
else {
ps.setDouble(paramIndex, ((DoubleData)value).doubleValue());
}
}
else if (value instanceof DateTimeData) {
if (value.isNull()) {
ps.setNull(paramIndex, Types.DATE);
}
else {
java.util.Date theDate = ((DateTimeData)value).asDate();
ps.setTimestamp(paramIndex, new java.sql.Timestamp(theDate.getTime()));
}
}
else if (value instanceof BinaryData) {
if (value.isNull()) {
ps.setNull(paramIndex, Types.BINARY);
}
else {
ps.setBytes(paramIndex, ((BinaryData)inValue).toByteArray());
}
}
// TF:20/3/08:Added a missing case for inserting boolean datas into the database
else if (value instanceof BooleanData) {
if (sqlType == SqlTypeValue.TYPE_UNKNOWN){ //PM:23/01/2009: special case to handle the BooleanData into column type of number(1)
if (value.isNull()) {
ps.setNull(paramIndex, Types.NULL);
}
else {
int numericBoolean = ((((BooleanData)inValue).getValue()) ? 1 : 0);
ps.setInt(paramIndex, numericBoolean);
}
} else {
if (value.isNull()) {
ps.setNull(paramIndex, Types.BOOLEAN);
}
else {
ps.setBoolean(paramIndex, ((BooleanData)inValue).getValue());
}