Opened 13 years ago
Closed 11 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 , 11 years ago
Milestone: | 3.6.0 → 3.9.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Version: | 3.7.0 → 3.9.0 |
Fixed by Ticket #887