summaryrefslogtreecommitdiff
path: root/dbaccess/source/core/misc/DatabaseDataProvider.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/core/misc/DatabaseDataProvider.cxx')
-rw-r--r--dbaccess/source/core/misc/DatabaseDataProvider.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/dbaccess/source/core/misc/DatabaseDataProvider.cxx b/dbaccess/source/core/misc/DatabaseDataProvider.cxx
index 631993f7343a..c45f9f98b8a0 100644
--- a/dbaccess/source/core/misc/DatabaseDataProvider.cxx
+++ b/dbaccess/source/core/misc/DatabaseDataProvider.cxx
@@ -34,6 +34,7 @@
#include <connectivity/FValue.hxx>
#include <connectivity/dbtools.hxx>
#include <rtl/ustrbuf.hxx>
+#include <rtl/math.hxx>
#include <com/sun/star/task/XInteractionHandler.hpp>
#include <com/sun/star/sdb/XCompletedExecution.hpp>
@@ -630,7 +631,14 @@ void DatabaseDataProvider::impl_fillInternalDataProvider_throw(sal_Bool _bHasCat
for (sal_Int32 j = _bHasCategories ? 2 : 1,i = 0; j <= nCount; ++j,++i)
{
aValue.fill(j,aColumnTypes[j-1],xRow);
- aRow.push_back(aValue.getDouble());
+ if ( aValue.isNull() )
+ {
+ double nValue;
+ ::rtl::math::setNan( &nValue );
+ aRow.push_back(nValue);
+ }
+ else
+ aRow.push_back(aValue.getDouble());
} // for (sal_Int32 j = 2,i = 0; j <= nCount; ++j,++i)
aDataValues.push_back(aRow);
} // while( xRes->next() && (!m_RowLimit || nRowCount < m_RowLimit) )