// the elements of _rxQueryColumns must have the properties PROPERTY_REALNAME and PROPERTY_TABLENAME void getColumnPositions(const css::uno::Reference< css::container::XNameAccess >& _rxQueryColumns, const css::uno::Sequence< OUString >& _rColumnNames,
std::u16string_view _rsUpdateTableName,
SelectColumnsMetaData& o_rColumnNames /* out */, bool i_bAppendTableName = false);
struct OKeySetValue
{
ORowSetRow m_aRowSetRow;
sal_Int32 m_nUpdateInsert;
rtl::Reference<OPrivateRow> m_xRow;
}; typedef std::map<sal_Int32,OKeySetValue > OKeySetMatrix; typedef std::map<sal_Int32, rtl::Reference<ORowSetValueVector> > OUpdatedParameter; // is used when the source supports keys class OKeySet : public OCacheSet
{ protected:
OKeySetMatrix m_aKeyMap;
OKeySetMatrix::iterator m_aKeyIter;
std::vector< OUString > m_aAutoColumns; // contains all columns which are autoincrement ones
OUpdatedParameter m_aUpdatedParameter; // contains all parameter which have been updated and are needed for refetching
rtl::Reference<ORowSetValueVector> m_aParameterValueForCache;
std::unique_ptr<SelectColumnsMetaData> m_pKeyColumnNames; // contains all key column names
std::unique_ptr<SelectColumnsMetaData> m_pColumnNames; // contains all column names
std::unique_ptr<SelectColumnsMetaData> m_pParameterNames; // contains all parameter names
std::unique_ptr<SelectColumnsMetaData> m_pForeignColumnNames; // contains all column names of the rest
connectivity::OSQLTable m_xTable; // reference to our table // we need a different SQL (statement) for each different combination // of NULLness of key & foreign columns; // each subclause is either "colName = ?" or "colName IS NULL" // (we avoid the standard "colName IS NOT DISTINCT FROM ?" because it is not widely supported) typedef std::map< std::vector<bool>,
css::uno::Reference< css::sdbc::XPreparedStatement > >
vStatements_t;
vStatements_t m_vStatements;
css::uno::Reference< css::sdbc::XPreparedStatement> m_xStatement;
css::uno::Reference< css::sdbc::XResultSet> m_xSet;
css::uno::Reference< css::sdbc::XRow> m_xRow;
css::uno::Reference< css::sdb::XSingleSelectQueryAnalyzer > m_xComposer; const OUString m_sUpdateTableName;
std::vector< OUString > m_aFilterColumns;
sal_Int32& m_rRowCount;
bool m_bRowCountFinal;
/** copies the values from the insert row into the key row * *\param_rInsertRowtherowwhichwasinserted *\param_rKeyRowThecurrentkeyrowoftherowset. +\parami_nBookmarkThebookmarkisusedtoupdatetheparameter
*/ void copyRowValue(const ORowSetRow& _rInsertRow, ORowSetRow const & _rKeyRow, sal_Int32 i_nBookmark);
// returns true if it did any work bool fillAllRows(); bool fetchRow(); void invalidateRow();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.