Ein Objekt dieser Klasse greift auf Tabellen zu und schreibt Datensätze (Record) und Binärdateien (eut::Blob) in Texttabellen bzw. ins Dateisystem.
Mehr ...
#include <GloTableWriterInterface.h>
|
| TableWriterInterface () |
|
int | appendOnTable (std::streampos &rspFileIndexPosition, const std::string &rsTableName, unsigned long ulClassID, const std::string &rsDataRow) |
|
int | getFirstDeletedRecordItem (std::streampos &rspFileIndexPosition, unsigned long ulClassID) |
|
int | readLastMagicNumber (eut::UnsignedMagicNumber &rRetVal, const std::string &rsFileName) |
|
int | readLastObjCounter (unsigned long &rulObjCounter) |
|
int | readLastUL (unsigned long &rulRetVal, const std::string &rsFileName) |
|
void | removeForbiddenCharacters (std::string &rsField) const |
|
int | updateExternFiles (BaseRecordAttribute *pRecordAttribute, DATA_REFERENCE_INFO MethodInfo) |
|
int | updateInsert (Record *pInputUpdateRecord, EnInUd eInUd) |
|
int | updateObjectDataAttribute (BaseRecordAttribute *pRecordAttribute, ObjID ObjID) |
|
int | writeInTable (const std::string &rsTableName, const std::string &rsContents, const std::streampos spFileIndexPosition) |
|
int | writeLastMagicNumber (const eut::UnsignedMagicNumber &rVal, const std::string &rsFileName, bool bNew) |
|
int | writeLastObjCounter (const unsigned long &rulObjCounter, bool bNew) |
|
int | writeLastUL (const unsigned long &rulVal, const std::string &rsFileName, bool bNew) |
|
| TableInterface () |
|
int | openFile (std::fstream *&prFStream, const std::string &sFullFileName, std::ios_base::openmode OpenMode) |
|
Ein Objekt dieser Klasse greift auf Tabellen zu und schreibt Datensätze (Record) und Binärdateien (eut::Blob) in Texttabellen bzw. ins Dateisystem.
- Copyright
- © 2010 Helmut Jakoby
- Autor
- Helmut Jakoby
◆ EnInUd
Eine Enumeration um mitzuteilen, ob ein Datensatz in eine Tabellen-Datei neu eingefügt oder überschrieben werden soll.
Aufzählungswerte |
---|
eINSERT | Der Datensatz soll in die Tabellen-Datei neu eingefügt werden
|
eUPDATE | Der Datensatz soll in der Tabellen-Datei überschrieben werden
|
◆ TableWriterInterface() [1/3]
glo::TableWriterInterface::TableWriterInterface |
( |
| ) |
|
|
protected |
Der Standard-Konstruktor steht nicht zur Verfügung.
◆ TableWriterInterface() [2/3]
Konstruktor mit Parameterübergabe.
- Parameter
-
[in] | rScheme | Ohne Schema gehts nicht, wird kopiert. |
[in] | pRealIndexPool | Ist hier obligatorisch. Beschleunigt den Zugriff auf Datensätze und es werden die Indexe gepflegt. |
- Ausnahmebehandlung
-
◆ ~TableWriterInterface()
virtual glo::TableWriterInterface::~TableWriterInterface |
( |
| ) |
|
|
virtual |
Destruktor, es werden alle geöffneten Tabellen-Dateien geschlossen und der Speicher aufgeräumt.
◆ TableWriterInterface() [3/3]
Der Copy-Konstruktor steht nicht zur Verfügung.
◆ appendOnTable()
int glo::TableWriterInterface::appendOnTable |
( |
std::streampos & | rspFileIndexPosition, |
|
|
const std::string & | rsTableName, |
|
|
unsigned long | ulClassID, |
|
|
const std::string & | rsDataRow ) |
|
protected |
Schreibt einen neuen Datensatz entweder ans Ende der Tabelle oder, wenn ein gelöschter Datensatz vorhanden ist, an dessen Stelle.
- Parameter
-
[in,out] | rspFileIndexPosition | Die Position in der Tabellen-Datei, wo der Datensatz geschrieben wurde (ist die Position der Objekt-ID, welche für den Index benötigt wird). |
[in] | rsTableName | Die vollständige Bezeichnung der Tabellen-Datei. |
[in] | ulClassID | Die Klassen-ID, wird benötigt um die Position eines evtl. gelöschten Datensatzes aus dem TableInterface::m_pRealIndexPool zu ermitteln. |
[in] | rsDataRow | Die in die Tabellen-Datei zu schreibende Zeile mit den Datensatz-Attributen. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ deleteObjectData()
int glo::TableWriterInterface::deleteObjectData |
( |
Record * | pRecord, |
|
|
std::vector< TransactionIndexPool * > * | pTransactionIndexPoolVector = 0 ) |
Kennzeichnet den übergebenen Datensatz in den Tabellen als gelöscht (ObjID == 0). Externe Dateien werden gelöscht wenn vorhanden.
Indexe werden im RealIndexPool angepasst
- Parameter
-
[in] | pRecord | Der zu löschende Datensatz. |
[in] | pTransactionIndexPoolVector | Wenn übergeben, dann werden nicht nur im RealIndexPool, sondern auch in diesem TransactionIndexPools die Indexe aktualisiert |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ getFirstDeletedRecordItem()
int glo::TableWriterInterface::getFirstDeletedRecordItem |
( |
std::streampos & | rspFileIndexPosition, |
|
|
unsigned long | ulClassID ) |
|
protected |
Liefert die Position eines Datensatzes in einer Tabellen-Datei der Klasse der übergebenen Klassen-ID, welcher gelöscht wurde aus dem TableInterface::m_pRealIndexPool.
- Parameter
-
[in,out] | rspFileIndexPosition | Die Position in der Tabellen-Datei, wo ein Datensatz gelöscht wurde. |
[in] | ulClassID | Die Klassen-ID, wird benötigt um die Position eines evtl. gelöschten Datensatzes aus dem TableInterface::m_pRealIndexPool zu ermitteln. |
◆ getNewObjID()
int glo::TableWriterInterface::getNewObjID |
( |
ObjID & | rObjID | ) |
|
Liefert in übergebener ObjID eine neue eindeutige Objekt-ID, ohne Klassen-ID.
- Parameter
-
[in,out] | rObjID | Die Objekt-ID wird gesetzt. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ openTable()
virtual int glo::TableWriterInterface::openTable |
( |
const std::string & | sTableName | ) |
|
|
virtual |
Öffnet eine Tabellen-Datei zum schreiben und fügt diese bei Erfolg in die Liste der geöffneten Tabellen-Dateien ein.
- Parameter
-
[in] | sTableName | Die Tabellen-Dateibezeichnung. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
Implementiert glo::TableInterface.
◆ operator=()
Der Zuweisungsoperator steht nicht zur Verfügung.
◆ readLastMagicNumber()
int glo::TableWriterInterface::readLastMagicNumber |
( |
eut::UnsignedMagicNumber & | rRetVal, |
|
|
const std::string & | rsFileName ) |
|
protected |
Liest eine eut::UnsignedMagicNumber aus einer Datei mit der übergebenen Bezeichnung (die Datei mit der übergebenen Bezeichnung wird im Verzeichnis der Daten erwartet).
- Parameter
-
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ readLastObjCounter()
int glo::TableWriterInterface::readLastObjCounter |
( |
unsigned long & | rulObjCounter | ) |
|
|
protected |
◆ readLastUL()
int glo::TableWriterInterface::readLastUL |
( |
unsigned long & | rulRetVal, |
|
|
const std::string & | rsFileName ) |
|
protected |
Liest eine unsigned long aus einer Datei mit übergebener Bezeichnung (die Datei mit der übergebenen Bezeichnung wird im Verzeichnis der Daten erwartet).
- Parameter
-
[in,out] | rulRetVal | Der Wert wird gesetzt. |
[in,out] | rsFileName | Die Datei aus der rulRetVal gelesen wird. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ removeForbiddenCharacters()
void glo::TableWriterInterface::removeForbiddenCharacters |
( |
std::string & | rsField | ) |
const |
|
protected |
Entfernt "verbotene" Zeichen aus dem übergebenen String.
Zwei Zeichen werden grundsätzlich in Ersatzzeichen ausgetauscht.
Der TableInterface::TableColumnDelimiter ist als Trenner der einzelnen Tabellenfelder reserviert und wird in ein '^' geändert.
Ein '\n' würde durch den Zeilenumbruch die Texttabelle zerstören und wird in ein '_' gewandelt.
- Parameter
-
[in] | rsField | Der String, welcher überprüft wird. |
◆ storeObjectData()
int glo::TableWriterInterface::storeObjectData |
( |
Record * | pRecord, |
|
|
std::vector< TransactionIndexPool * > * | pTransactionIndexPoolVector = 0 ) |
Fügt bzw. hängt den Datensatz in/an die Tabellen ein/an. Externe Dateien werden geschrieben wenn notwendig.
- Parameter
-
[in] | pRecord | Der zu schreibende Datensatz. |
[in] | pTransactionIndexPoolVector | Wenn übergeben, werden nicht nur im RealIndexPool, sondern auch in diesem TransactionIndexPools die Indexe aktualisiert |
- Rückgabe
- Rückgabe == 1 In Datenbank neu eingefügt
Rückgabe == 0 In Datenbank geändert
Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ updateExternFiles()
Löscht bzw. schreibt eine externe Datei evtl. neu in Abhängigkeit von der übergebenen DATA_REFERENCE_INFO.
- Parameter
-
[in] | pRecordAttribute | Zeiger auf das Datensatz-Attribut, dessen Daten evtl. in eine externe Datei geschrieben werden sollen bzw. dessen externe Datei gelöscht werden soll. |
[in] | MethodInfo | Die Information wie mit der externen Datei umgegangen werden soll. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ updateInsert()
int glo::TableWriterInterface::updateInsert |
( |
Record * | pInputUpdateRecord, |
|
|
EnInUd | eInUd ) |
|
protected |
Fügt bzw. hängt den Datensatz in/an die Tabellen ein/an. Externe Dateien werden geschrieben wenn notwendig.
- Parameter
-
[in] | pInputUpdateRecord | Der zu schreibende Datensatz. |
[in] | eInUd | Wenn eINSERT wird ein Datensatz neu geschrieben, wenn eUPDATE wird der schon existierende Datensatz überschrieben. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ updateObjectDataAttribute()
Schreibt ein einzelnes Datensatz-Attribut in eine Tabellen-Datei.
- Parameter
-
[in] | pRecordAttribute | Zeiger auf das zu schreibende Datensatz-Attribut. |
[in] | ObjID | Falls ein Dateiname kreiert werden muss, wird dieser aus dieser Objekt-ID gebieldet. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ writeInTable()
int glo::TableWriterInterface::writeInTable |
( |
const std::string & | rsTableName, |
|
|
const std::string & | rsContents, |
|
|
const std::streampos | spFileIndexPosition ) |
|
protected |
Schreibt das übergebene Tabellenfeld (rsContents) in die Tabelle mit der übergebenen Bezeichnung (rsTableName) an die übergebene Position (spFileIndexPosition).
Diese Methode wird einerseits genutzt um einen Datensatz zu schreiben (siehe Aufruf dieser Methode in TableWriterInterface::updateInsert (...) ) oder ein BaseRecordAttribute in einer Tabellenzeile zu schreiben (siehe Aufruf in der Methode TableWriterInterface::updateObjectDataAttribute (...) ).
- Parameter
-
[in] | rsTableName | Die vollständige Bezeichnung der Tabellen-Datei. |
[in] | rsContents | Das formatierte Tabellenfeld (es wird vorausgesetzt, dass der Inhalt die richtige Länge hat und alle verbotenen Zeichen entfernt bzw. ausgetauscht sind). |
[in] | spFileIndexPosition | Die Position des Tabellenfelds in der Tabellen-Datei. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ writeLastMagicNumber()
int glo::TableWriterInterface::writeLastMagicNumber |
( |
const eut::UnsignedMagicNumber & | rVal, |
|
|
const std::string & | rsFileName, |
|
|
bool | bNew ) |
|
protected |
Schreibt eine eut::UnsignedMagicNumber in eine Datei mit der übergebenen Bezeichnung (die Datei mit der übergebenen Bezeichnung wird im Verzeichnis der Daten erwartet).
- Parameter
-
[in] | rVal | Die eut::UnsignedMagicNumber wird geschrieben. |
[in,out] | rsFileName | Die Datei in die rVal geschrieben wird. |
[in] | bNew | Wenn true, wird die Datei neu angelegt, ansonsten rVal in der Datei überschrieben. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ writeLastObjCounter()
int glo::TableWriterInterface::writeLastObjCounter |
( |
const unsigned long & | rulObjCounter, |
|
|
bool | bNew ) |
|
protected |
Schreibt eine Objekt-Zähler (für ObjID::m_ulObjCounter) in die Datei "LastObjID" (die Datei "LastObjID" liegt im Verzeichnis der Daten).
Wird von TableWriterInterface::getNewObjID(ObjID&) genutzt.
- Parameter
-
[in] | rulObjCounter | Der Objekt-Zähler. |
[in] | bNew | Wenn true, wird die Datei neu angelegt, ansonsten wird der Objekt-Zähler in der Datei "LastObjID" überschrieben. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ writeLastUL()
int glo::TableWriterInterface::writeLastUL |
( |
const unsigned long & | rulVal, |
|
|
const std::string & | rsFileName, |
|
|
bool | bNew ) |
|
protected |
Schreibt eine unsigned long in eine Datei mit der übergebenen Bezeichnung (die Datei mit der übergebenen Bezeichnung wird im Verzeichnis der Daten erwartet).
- Parameter
-
[in] | rulVal | Der Wert wird geschrieben. |
[in,out] | rsFileName | Die Datei in die rulVal geschrieben wird. |
[in] | bNew | Wenn true, wird die Datei neu angelegt, ansonsten rulVal in der Datei überschrieben. |
- Rückgabe
- Ein Rückgabewert < 0 zeigt einen Fehler an.
◆ m_pTransactionIndexPoolVector
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: