KDbRecordEditBuffer

Search for usage in LXR

#include <KDbRecordEditBuffer.h>

Public Types

typedef QHash< KDbQueryColumnInfo *, QVariantDbHash
 
typedef QMap< QString, QVariantSimpleMap
 

Public Member Functions

 KDbRecordEditBuffer (bool dbAwareBuffer)
 
const QVariantat (const KDbField &field) const
 
const QVariantat (const QString &fname) const
 
const QVariantat (KDbQueryColumnInfo *ci, bool useDefaultValueIfPossible=true) const
 
void clear ()
 
KDbRecordEditBuffer::DbHash dbBuffer () const
 
bool hasDefaultValueAt (const KDbQueryColumnInfo &ci) const
 
void insert (const QString &fname, const QVariant &val)
 
void insert (KDbQueryColumnInfo *ci, const QVariant &val)
 
bool isDBAware () const
 
bool isEmpty () const
 
void removeAt (const KDbField &field)
 
void removeAt (const KDbQueryColumnInfo &ci)
 
void removeAt (const QString &fname)
 
KDbRecordEditBuffer::SimpleMap simpleBuffer () const
 

Protected Attributes

DbHashm_dbBuffer
 
DbHash::Iteratorm_dbBufferIt
 
QMap< KDbQueryColumnInfo *, bool > * m_defaultValuesDbBuffer
 
QMap< KDbQueryColumnInfo *, bool >::ConstIterator * m_defaultValuesDbBufferIt
 
SimpleMapm_simpleBuffer
 
SimpleMap::ConstIteratorm_simpleBufferIt
 

Detailed Description

provides data for single edited database record

KDbRecordEditBuffer provides data for single edited record, needed to perform update at the database backend. Its advantage over pasing e.g. KDbFieldList object is that EditBuffer contains only changed values.

EditBuffer offers two modes: db-aware and not-db-aware. Db-aware buffer addresses a field using references to KDbQueryColumnInfo object, while not-db-aware buffer addresses a field using its name.

Example usage of not-db-aware buffer: KDbQuerySchema *query = ..... EditBuffer buf; buf.insert("name", "Joe"); buf.insert("surname", "Black"); buf.at("name"); //returns "Joe" buf.at("surname"); //returns "Black" buf.at(query->field("surname")); //returns "Black" too Now you can use buf to add or edit records using KDbConnection::updateRecord(), KDbConnection::insertRecord()

Example usage of db-aware buffer: KDbQuerySchema *query = ..... KDbQueryColumnInfo *ci1 = ....... //e.g. can be obtained from QueryScehma::fieldsExpanded() KDbQueryColumnInfo *ci2 = ....... EditBuffer buf; buf.insert(*ci1, "Joe"); buf.insert(*ci2, "Black"); buf.at(*ci1); //returns "Joe" buf.at(*ci2); //returns "Black" Now you can use buf to add or edit records using KDbConnection::updateRecord(), KDbConnection::insertRecord()

You can use QMap::clear() to clear buffer contents, QMap::isEmpty() to see if buffer is empty. For more, see QMap documentation.

Notes: added fields should come from the same (common) KDbQuerySchema object. However, this isn't checked at QValue& EditBuffer::operator[]( const KDbField& f ) level.

Definition at line 76 of file KDbRecordEditBuffer.h.

Member Typedef Documentation

◆ DbHash

◆ SimpleMap

Constructor & Destructor Documentation

◆ KDbRecordEditBuffer()

KDbRecordEditBuffer::KDbRecordEditBuffer ( bool dbAwareBuffer)
explicit

Definition at line 25 of file KDbRecordEditBuffer.cpp.

◆ ~KDbRecordEditBuffer()

KDbRecordEditBuffer::~KDbRecordEditBuffer ( )

Definition at line 35 of file KDbRecordEditBuffer.cpp.

Member Function Documentation

◆ at() [1/3]

const QVariant * KDbRecordEditBuffer::at ( const KDbField & field) const

Useful only for not-db-aware buffer.

Returns
value for field field Returns nullptr if there is no such field.

Definition at line 77 of file KDbRecordEditBuffer.cpp.

◆ at() [2/3]

const QVariant * KDbRecordEditBuffer::at ( const QString & fname) const

Useful only for not-db-aware buffer.

Returns
value for field fname Returns nullptr if there is no such field.

Definition at line 91 of file KDbRecordEditBuffer.cpp.

◆ at() [3/3]

const QVariant * KDbRecordEditBuffer::at ( KDbQueryColumnInfo * ci,
bool useDefaultValueIfPossible = true ) const

Useful only for db-aware buffer.

Returns
value for column ci If there is no value assigned for the buffer, this method tries to remember and return default value obtained from ci if useDefaultValueIfPossible is true. Note that if the column is declared as unique (especially: primary key), default value will not be used. Returns nullptr if ci is nullptr.

Definition at line 50 of file KDbRecordEditBuffer.cpp.

◆ clear()

void KDbRecordEditBuffer::clear ( )

Definition at line 132 of file KDbRecordEditBuffer.cpp.

◆ dbBuffer()

KDbRecordEditBuffer::DbHash KDbRecordEditBuffer::dbBuffer ( ) const

Definition at line 176 of file KDbRecordEditBuffer.cpp.

◆ hasDefaultValueAt()

bool KDbRecordEditBuffer::hasDefaultValueAt ( const KDbQueryColumnInfo & ci) const

Useful only for db-aware buffer:

Returns
true if the value available as at( ci ) is obtained from column's default value

Definition at line 166 of file KDbRecordEditBuffer.cpp.

◆ insert() [1/2]

void KDbRecordEditBuffer::insert ( const QString & fname,
const QVariant & val )

Inserts value val for not-db-aware buffer's column fname.

Definition at line 159 of file KDbRecordEditBuffer.cpp.

◆ insert() [2/2]

void KDbRecordEditBuffer::insert ( KDbQueryColumnInfo * ci,
const QVariant & val )

Inserts value val for db-aware buffer's column ci Does nothing if ci is nullptr.

Definition at line 151 of file KDbRecordEditBuffer.cpp.

◆ isDBAware()

bool KDbRecordEditBuffer::isDBAware ( ) const

Definition at line 45 of file KDbRecordEditBuffer.cpp.

◆ isEmpty()

bool KDbRecordEditBuffer::isEmpty ( ) const

Definition at line 142 of file KDbRecordEditBuffer.cpp.

◆ removeAt() [1/3]

void KDbRecordEditBuffer::removeAt ( const KDbField & field)

Removes value from not-db-aware buffer's column fname.

Definition at line 114 of file KDbRecordEditBuffer.cpp.

◆ removeAt() [2/3]

void KDbRecordEditBuffer::removeAt ( const KDbQueryColumnInfo & ci)

Removes value from db-aware buffer's column ci.

Definition at line 105 of file KDbRecordEditBuffer.cpp.

◆ removeAt() [3/3]

void KDbRecordEditBuffer::removeAt ( const QString & fname)

Removes value from not-db-aware buffer's column fname.

Definition at line 123 of file KDbRecordEditBuffer.cpp.

◆ simpleBuffer()

KDbRecordEditBuffer::SimpleMap KDbRecordEditBuffer::simpleBuffer ( ) const

Definition at line 171 of file KDbRecordEditBuffer.cpp.

Member Data Documentation

◆ m_dbBuffer

DbHash* KDbRecordEditBuffer::m_dbBuffer
protected

Definition at line 135 of file KDbRecordEditBuffer.h.

◆ m_dbBufferIt

DbHash::Iterator* KDbRecordEditBuffer::m_dbBufferIt
protected

Definition at line 136 of file KDbRecordEditBuffer.h.

◆ m_defaultValuesDbBuffer

QMap<KDbQueryColumnInfo*, bool>* KDbRecordEditBuffer::m_defaultValuesDbBuffer
protected

Definition at line 137 of file KDbRecordEditBuffer.h.

◆ m_defaultValuesDbBufferIt

QMap<KDbQueryColumnInfo*,bool>::ConstIterator* KDbRecordEditBuffer::m_defaultValuesDbBufferIt
protected

Definition at line 138 of file KDbRecordEditBuffer.h.

◆ m_simpleBuffer

SimpleMap* KDbRecordEditBuffer::m_simpleBuffer
protected

Definition at line 133 of file KDbRecordEditBuffer.h.

◆ m_simpleBufferIt

SimpleMap::ConstIterator* KDbRecordEditBuffer::m_simpleBufferIt
protected

Definition at line 134 of file KDbRecordEditBuffer.h.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sun Feb 25 2024 18:47:38 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.