Opened 12 years ago

Closed 10 years ago

#806 closed defect (fixed)

KingOra - Very Long Int64 Values Crash FeatureReader

Reported by: crispinatime Owned by: haris
Priority: major Milestone: 3.9.0
Component: KingOracle Provider Version: 3.9.0
Severity: 3 Keywords:
Cc: External ID:

Description

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.

Change History (1)

comment:1 by gregboone, 10 years ago

Milestone: 3.6.03.9.0
Resolution: fixed
Status: newclosed
Version: 3.7.03.9.0

Fixed by Ticket #887

Note: See TracTickets for help on using tickets.