#806: KingOra - Very Long Int64 Values Crash FeatureReader
-----------------------------------+----------------------------------------
Reporter: crispinatime | Owner: haris
Type: defect | Status: new
Priority: major | Milestone: 3.6.0
Component: KingOracle Provider | Version: 3.7.0
Severity: 3 | Keywords:
External_id: |
-----------------------------------+----------------------------------------
When an Oracle schema contains what FDO considers an Int64 - eg
"NUMBER(15,0)" and that field contains very large numbers there is an
exception thrown in KingOra because of a call to
m_OciStatement->GetLong(). Where the same column definition contains
lesser values all is OK.
To address this, in "c_KgOraReader.h" in the following template class I
changed the call to a GetDouble and returned with a cast. But I'm not a
proper C++ programmer!
template <class FDO_READER> FdoInt64
c_KgOraReader<FDO_READER>::GetInt64(FdoString* propertyName)
{
... snip...
double val = m_OciStatement->GetDouble(oraind);
return (FdoInt64)val;
... snip...
}
Because of the inneficiency in the MapGuide reader for tooltips (it
doesn't optimise for the columns required but instead reads all fields
because one of them may be needed in an expression editor... one day this
will be fixed in MG) this can result in no tooltips being displayed and
noise in MG error logs.
--
Ticket URL: <http://trac.osgeo.org/fdo/ticket/806>
FDO <http://fdo.osgeo.org/>
Feature Data Objects