summaryrefslogtreecommitdiff
path: root/sw/inc/dbmgr.hxx
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2016-01-20 10:48:37 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2016-03-24 22:40:48 +0100
commitbdb0c4e128ffb7b0d30fd90153762802de514cda (patch)
tree72a39145475f857ba279eed4c3472218df4e9ceb /sw/inc/dbmgr.hxx
parente817940a83ba7f2768acc245e005ca096d34776a (diff)
tdf#95292 MM: cleanup bEndOfDB handling
bEndOfDB was handled inconsistently in ToNextRecord for record selections and normal record iteration. The new unified semantics are defined to set bEndOfDB for the first failing record fetch. This includes a rename of the function ExistsNextRecord, which did never check for a next record, but just verified the current record set to be valid. This way we can also drop the bAfterSelection selection, which was just needed for the inconsistent bEndOfDB handling. Change-Id: Ibbd7ae95e5969b51e32f44b442e5dc778655e8a9
Diffstat (limited to 'sw/inc/dbmgr.hxx')
-rw-r--r--sw/inc/dbmgr.hxx16
1 files changed, 6 insertions, 10 deletions
diff --git a/sw/inc/dbmgr.hxx b/sw/inc/dbmgr.hxx
index 9365949d4a31..7f7a394cbfdd 100644
--- a/sw/inc/dbmgr.hxx
+++ b/sw/inc/dbmgr.hxx
@@ -109,14 +109,12 @@ struct SwDSParam : public SwDBData
css::uno::Sequence< css::uno::Any > aSelection;
bool bScrollable;
bool bEndOfDB;
- bool bAfterSelection;
long nSelectionIndex;
SwDSParam(const SwDBData& rData) :
SwDBData(rData),
bScrollable(false),
bEndOfDB(false),
- bAfterSelection(false),
nSelectionIndex(0)
{}
@@ -128,16 +126,13 @@ struct SwDSParam : public SwDBData
aSelection(rSelection),
bScrollable(true),
bEndOfDB(false),
- bAfterSelection(false),
nSelectionIndex(0)
{}
- void CheckEndOfDB()
- {
- if(bEndOfDB)
- bAfterSelection = true;
- }
+ inline bool HasValidRecord() const
+ { return( !bEndOfDB && xResultSet.is() ); }
};
+
typedef std::vector<std::unique_ptr<SwDSParam>> SwDSParams_t;
struct SwMergeDescriptor
@@ -266,6 +261,9 @@ friend class SwConnectionDisposedListener_Impl;
const SwMergeDescriptor& rMergeDescriptor,
vcl::Window* pParent );
+ SAL_DLLPRIVATE bool ToNextMergeRecord();
+ SAL_DLLPRIVATE bool IsValidMergeRecord() const;
+
SwDBManager(SwDBManager const&) = delete;
SwDBManager& operator=(SwDBManager const&) = delete;
@@ -361,10 +359,8 @@ public:
OUString &rResult, double *pNumber);
bool FillCalcWithMergeData(SvNumberFormatter *pDocFormatter,
sal_uInt16 nLanguage, SwCalc &aCalc);
- bool ToNextMergeRecord();
bool ToNextRecord(const OUString& rDataSource, const OUString& rTableOrQuery);
- bool ExistsNextRecord()const;
sal_uInt32 GetSelectedRecordId();
bool ToRecordId(sal_Int32 nSet);