Work around missing functionality in ResultSet implementations.
This commit is contained in:
parent
8c25c9f30b
commit
b2159e9aef
1 changed files with 12 additions and 11 deletions
|
@ -16,6 +16,7 @@ import java.sql.*;
|
|||
import helma.objectmodel.*;
|
||||
import helma.util.*;
|
||||
import helma.framework.IPathElement;
|
||||
import java.math.BigDecimal;
|
||||
// import com.workingdogs.village.*;
|
||||
|
||||
|
||||
|
@ -275,20 +276,20 @@ public final class Node implements INode, Serializable {
|
|||
if (rel.reftype != Relation.PRIMITIVE && rel.reftype != Relation.REFERENCE)
|
||||
continue;
|
||||
|
||||
// Value val = rec.getValue (rel.getDbField ());
|
||||
|
||||
// if (val.isNull ())
|
||||
// continue;
|
||||
|
||||
Property newprop = new Property (rel.propName, this);
|
||||
|
||||
// if (val.isNull ())
|
||||
// newprop.setStringValue (null);
|
||||
// else
|
||||
|
||||
switch (rel.getColumnType()) {
|
||||
|
||||
case Types.BIT:
|
||||
newprop.setBooleanValue (rs.getBoolean(rel.getDbField()));
|
||||
String tmp = rs.getString (rel.getDbField());
|
||||
if (tmp == null)
|
||||
newprop.setBooleanValue (false);
|
||||
else if (tmp.equalsIgnoreCase ("true") ||
|
||||
tmp.equalsIgnoreCase ("yes") ||
|
||||
tmp.equals ("1"))
|
||||
newprop.setBooleanValue (true);
|
||||
else
|
||||
newprop.setBooleanValue (false);
|
||||
break;
|
||||
|
||||
case Types.TINYINT:
|
||||
|
@ -306,7 +307,7 @@ public final class Node implements INode, Serializable {
|
|||
|
||||
case Types.DECIMAL:
|
||||
case Types.NUMERIC:
|
||||
java.math.BigDecimal num = rs.getBigDecimal (rel.getDbField());
|
||||
BigDecimal num = new BigDecimal (rs.getString (rel.getDbField()));
|
||||
if (num.scale() > 0)
|
||||
newprop.setFloatValue (rs.getDouble(rel.getDbField()));
|
||||
else
|
||||
|
|
Loading…
Add table
Reference in a new issue