PPL6-Icon Patrick's Programming Library Version 6.4.21 - Dokumentation
ppl6::db::Result Klassenreferenz

Basisklasse für Ergebnisse aus Datenbank-Selects. Mehr ...

Öffentliche Typen

enum  Type {
  Error =-1, Unknown =0, Integer, Decimal,
  Bit, Timestamp, Date, Time,
  DateTime, String, Binary, Enum
}
 Mögliche Datentypen. Mehr ...
 

Öffentliche Methoden

 Result ()
 Konstruktor der Klasse. Mehr ...
 
virtual ~Result ()
 Destruktor der Klasse. Mehr ...
 
virtual pplint64 Affected ()
 Betroffene Zeilen. Mehr ...
 
virtual void Clear ()
 Speicher freigeben, Result löschen. Mehr ...
 
int Export (CAssocArray &array)
 Result als assoziatives Array exportieren. Mehr ...
 
virtual CAssocArray FetchArray (pplint64 row=-1)
 Zeile in ein Assoziatives Array kopieren. Mehr ...
 
virtual int FetchArray (CAssocArray &array, pplint64 row=-1)
 Zeile in ein Assoziatives Array kopieren. Mehr ...
 
virtual CArray FetchFields (pplint64 row=-1)
 Zeile in ein Array kopieren. Mehr ...
 
virtual int FetchFields (CArray &array, pplint64 row=-1)
 Zeile in ein Array kopieren. Mehr ...
 
virtual const char * FieldName (int field)
 Name einer bestimmten Spalte herausfinden. Mehr ...
 
virtual int FieldNum (const char *fieldname)
 Spalte eines bestimmten Feldes herausfinden. Mehr ...
 
virtual int Fields ()
 Anzahl Spalten im Ergebnis. Mehr ...
 
virtual Result::Type FieldType (int field)
 Typ eines Feldes auslesen. Mehr ...
 
virtual Result::Type FieldType (const char *fieldname)
 Typ eines Feldes auslesen. Mehr ...
 
virtual const char * Get (pplint64 row, const char *fieldname)
 Wert eines bestimmten Feldes. Mehr ...
 
virtual const char * Get (pplint64 row, int field)
 Wert eines bestimmten Feldes. Mehr ...
 
virtual void PrintResult ()
 Ergebnis auf STDOUT ausgeben. Mehr ...
 
virtual pplint64 Rows ()
 Anzahl Zeilen im Ergebnis. Mehr ...
 
virtual int Seek (pplint64 row)
 Internen Zeiger auf die gewünschte Ergebniszeile setzen. Mehr ...
 

Ausführliche Beschreibung

Include:
#include <ppl6-db.h>
Beschreibung:
Dies ist eine virtuelle Basisklasse für das Aufnehmen des Ergebnisses eines Datenbank-Selects. Die tatsächliche Implementierung ist Datenbank-spezifisch, daher hat jede Datenbank-Klasse eine eigene abgeleitete Implementierung davon. Mit Ihren Funktionen können die Ergebniszeilen aus einem Select durchwandert und ausgelesen werden.
Die Klasse wird durch Aufruf verschiedener Funktionen innerhalb der Klasse ppl6::db::Database (bzw. davon abgeleiteten Klassen) erstellt und muss von der aufrufenden Anwendung selbst mit delete gelöscht werden.
Beispiel:
Das nachfolgende Beispiel zeigt unter Verwendung einer MySQL-Datenbank, wie die Result-Klasse verwendet werden kann.
int DB_Result_Example1() {
// Zunächst erstellen wir eine Verbindung zu einer MySQL-Datenbank
param.Set("host","db.pfp.de");
param.Set("port","3306");
param.Set("user","patrick");
param.Set("password","xxxxxxx");
param.Set("dbname","test");
// Verbindung zur Datenbank aufbauen
if (!db.Connect(param)) {
return 0;
}
// Select abschicken
ppl6::db::Result *res=db.Query("select * from user order by name");
if (!res) {
return 0;
}
printf ("Es wurden %lli Datensätze gefunden:\n",res->Rows());
// Wir verwenden Result::FetchArray, um durch das Ergebnis zu traversieren
while ((res->FetchArray(row))) {
printf ("Name: %s, Email: %s\n",row["name"],row["email"]);
}
delete res; // Ergebnis löschen, Speicher freigeben
db.Disconnect();
} // EOF

Dokumentation der Aufzählungstypen

Aufzählungswerte
Error 

Dieser Wert wird von der Funktion Result::FieldType im Fehlerfall zurückgegeben.

Unknown 

Der Datentyp ist unbekannt

Integer 

Ein Zahlenwert vom Typ Integer

Decimal 

Ein Zahlenwert mit Kommastellen. Häufig ein Float oder Double

Bit 

Ein boolscher Wert

Timestamp 

Ein Zeitstempel, meist UTC

Date 

Ein Datumswert

Time 

Eine Uhrzeit

DateTime 

Kombination aus Datum und Uhrzeit

String 

Ein String

Binary 

Ein großer String oder Binärwert

Enum 

Eine Enumeration

Beschreibung der Konstruktoren und Destruktoren

ppl6::db::Result::Result ( )

Dies ist der Konstruktor der Klasse. Er sorgt dafür, dass die internen Variablen initialisiert werden.

ppl6::db::Result::~Result ( )
virtual

Der Destruktor sorgt dafür, dass sämtlicher durch die Klasse allokierter Speicher wieder freigegeben wird. Dazu wird die Funktion Result::Clear aufgerufen.

Dokumentation der Elementfunktionen

pplint64 ppl6::db::Result::Affected ( )
virtual

War der Datenbank-Query ein Select, liefert diese Funktion genau wie Result::Rows die Anzahl Zeilen im Ergebnis zurück. Handelete es sich um ein Update/Insert/Replace, wird die Anzahl betroffener bzw. veränderter Datensätze zurückgegeben. Die Information kann auch über Funktion Database::GetAffectedRows der Datenbank-Klasse ausgelesen werden.

Rückgabe
Anzahl betroffender Datensätze, im Fehlerfall -1

Erneute Implementation in ppl6::db::GenericResult.

void ppl6::db::Result::Clear ( )
virtual
Beschreibung:
Durch Aufruf dieser Funktion wird der interne Speicher und Datenbank- oder Result-spezifische Handles freigegeben. Nach Aufruf der Funktion kann daher nicht mehr auf die vormals vorhandenen Ergebnisse des Datenbank-Selects zugegriffen werden. Die Funktion braucht in der Regel nicht aufgerufen zu werden, da dies auch der Destruktor der Klasse macht.

Erneute Implementation in ppl6::db::GenericResult.

int ppl6::db::Result::Export ( CAssocArray array)
Beschreibung:
Mit diesem Befehl wird das Result-Set dieses Objekts als Strings mit Key-Value-Paaren in ein CAssocArray kopiert. Das Array kann in ein GenericResult-Objekt mittels GenericResult::Import wieder importiert werden. Da alles als String exportiert wird, gehen die Datentyp-Informationen verloren.
Parameter
[out]arrayEin assoziatives Array, in dem das Result-Set gespeichert werden soll
Rückgabe
Bei Erfolg gibt die Funktion 1 zurück, im Fehlerfall 0.
CAssocArray ppl6::db::Result::FetchArray ( pplint64  row = -1)
virtual

Mit dieser Funktion wird eine komplette Ergebniszeile in ein Assoziatives Array vom Typ CAssocArray kopiert und der interne Zeiger auf den nächsten Datensatz vorgerückt. Durch wiederholtes Aufrufen der Funktion kann man somit nach und nach alle Ergebniszeilen durchwandern.

Parameter
[in]rowEin Optionaler Parameter, der die gewünschte Ergebniszeile angibt. Wird der Parameter weggelassen, wird der Datensatz zurückgegeben, auf den der interne Zeiger zeigt, und der Zeiger auf den nächsten Datensatz vorgerückt.
Rückgabe
Liefert ein CAssocArray mit Feldern und Werten der aktuellen Ergebniszeile zurück. Im Fehlerfall oder falls keine weiteren Ergebniszeilen vorhanden sind, wird ein leeres CAssocArray zurückgeliefert.
Bemerkungen
Bei Aufruf dieser Funktion werden die Daten der aktuellen Zeile mehrfach kopiert. Die Funktion Result::FetchArray(CAssocArray &array, ppluint64 row) ist daher vorzuziehen.

Erneute Implementation in ppl6::db::GenericResult.

int ppl6::db::Result::FetchArray ( CAssocArray array,
pplint64  row = -1 
)
virtual

Mit dieser Funktion wird eine komplette Ergebniszeile in das Assoziative Array array kopiert und der interne Zeiger auf den nächsten Datensatz vorgerückt. Durch wiederholtes Aufrufen der Funktion kann man somit nach und nach alle Ergebniszeilen durchwandern.

Parameter
[out]arrayEin Objekt vom Typ CAssocArray, in dem das Ergebnis gespeichert werden soll. Daten, die vor Aufruf in array enthalten sind, werden durch die Funktion gelöscht.
[in]rowEin Optionaler Parameter, der die gewünschte Ergebniszeile angibt. Wird der Parameter weggelassen, wird der Datensatz zurückgegeben, auf den der interne Zeiger zeigt, und der Zeiger auf den nächsten Datensatz vorgerückt.
Rückgabe
Im Erfolgsfall liefert die Funktion 1 zurück, im Fehlerfall oder falls keine weiteren Ergebniszeilen vorhanden sind 0.

Erneute Implementation in ppl6::db::GenericResult.

CArray ppl6::db::Result::FetchFields ( pplint64  row = -1)
virtual

Mit dieser Funktion wird eine komplette Ergebniszeile in ein Array vom Typ CArray kopiert und der interne Zeiger auf den nächsten Datensatz vorgerückt. Durch wiederholtes Aufrufen der Funktion kann man somit nach und nach alle Ergebniszeilen durchwandern.

Parameter
[in]rowEin Optionaler Parameter, der die gewünschte Ergebniszeile angibt. Wird der Parameter weggelassen, wird der Datensatz zurückgegeben, auf den der interne Zeiger zeigt, und der Zeiger auf den nächsten Datensatz vorgerückt.
Rückgabe
Liefert ein CArray mit Feldern und Werten der aktuellen Ergebniszeile zurück. Im Fehlerfall oder falls keine weiteren Ergebniszeilen vorhanden sind, wird ein leeres CArray zurückgeliefert.
Bemerkungen
Bei Aufruf dieser Funktion werden die Daten der aktuellen Zeile mehrfach kopiert. Die Funktion Result::FetchFields(CArray &array, ppluint64 row) ist daher vorzuziehen.

Erneute Implementation in ppl6::db::GenericResult.

int ppl6::db::Result::FetchFields ( CArray array,
pplint64  row = -1 
)
virtual

Mit dieser Funktion wird eine komplette Ergebniszeile in das Array array kopiert und der interne Zeiger auf den nächsten Datensatz vorgerückt. Durch wiederholtes Aufrufen der Funktion kann man somit nach und nach alle Ergebniszeilen durchwandern.

Parameter
[out]arrayEin Objekt vom Typ CArray, in dem das Ergebnis gespeichert werden soll. Daten, die vor Aufruf in array enthalten sind, werden durch die Funktion gelöscht.
[in]rowEin Optionaler Parameter, der die gewünschte Ergebniszeile angibt. Wird der Parameter weggelassen, wird der Datensatz zurückgegeben, auf den der interne Zeiger zeigt, und der Zeiger auf den nächsten Datensatz vorgerückt.
Rückgabe
Im Erfolgsfall liefert die Funktion 1 zurück, im Fehlerfall oder falls keine weiteren Ergebniszeilen vorhanden sind 0.

Erneute Implementation in ppl6::db::GenericResult.

const char * ppl6::db::Result::FieldName ( int  num)
virtual

Dies ist die Umkehrfunktion zu Result::FieldNum. Sie liefert den Namen eines bestimmten Feldes anhand dessen Spaltennummer num zurück, sofern sie vorhanden ist.

Parameter
[in]numGewünschte Spaltennummer
Rückgabe
Ist die Spalte vorhanden, wird deren Namen als String zurückgegeben, im Fehlerfall NULL.

Erneute Implementation in ppl6::db::GenericResult.

int ppl6::db::Result::FieldNum ( const char *  fieldname)
virtual

Diese Funktion liefert die Spaltennummer des Feldes mit dem Namen fieldname zurück, sofern dieses vorhanden ist.

Parameter
[in]fieldnameName des gesuchten Feldes
Rückgabe
Ist das Feld vorhanden, wird dessen Spaltennummer zurückgegeben. Die Zählung der Spalten fängt dabei bei 0 an. Im Fehlerfall wird -1 zurückgegeben.

Erneute Implementation in ppl6::db::GenericResult.

int ppl6::db::Result::Fields ( )
virtual

Diese Funktion liefert die Anzahl Spalten im Ergebnis des vorhergehenden Selects zurück.

Rückgabe
Anzahl Spalten oder -1 im Fehlerfall.

Erneute Implementation in ppl6::db::GenericResult.

Result::Type ppl6::db::Result::FieldType ( int  num)
virtual

Mit dieser Funktion kann man abfragen, was für ein Datentyp das Feld num ist.

Parameter
[in]numDie gewünschte Spalte
Rückgabe
Liefert einen Wert vom Typ Result::Type zurück, im Fehlerfall Result:Error.

Erneute Implementation in ppl6::db::GenericResult.

Result::Type ppl6::db::Result::FieldType ( const char *  fieldname)
virtual

Mit dieser Funktion kann man abfragen, was für ein Datentyp das Feld mit dem Namen fieldname ist.

Parameter
[in]fieldnameDie gewünschte Spalte
Rückgabe
Liefert einen Wert vom Typ Result::Type zurück, im Fehlerfall Result:Error.

Erneute Implementation in ppl6::db::GenericResult.

const char * ppl6::db::Result::Get ( pplint64  row,
const char *  fieldname 
)
virtual
Beschreibung:
Mit dieser Funktion wird der Wert des Feldes mit dem Namen fieldname aus der Ergebniszeile row als String zurückgegeben.
Parameter
[in]rowDie gewünschte Ergebniszeile
[in]fieldnameDer Name des auszulesenden Feldes
Rückgabe
Ist das Feld vorhanden, wird ein Pointer auf dessen Inhalt zurückgegeben, im Fehlerfall NULL.

Erneute Implementation in ppl6::db::GenericResult.

const char * ppl6::db::Result::Get ( pplint64  row,
int  field 
)
virtual
Beschreibung:
Mit dieser Funktion wird der Wert des Feldes in Spalte field aus der Ergebniszeile row als String zurückgegeben.
Parameter
[in]rowDie gewünschte Ergebniszeile
[in]fieldDer Nummer der auszulesenden Spalte
Rückgabe
Ist das Feld vorhanden, wird ein Pointer auf dessen Inhalt zurückgegeben, im Fehlerfall NULL.

Erneute Implementation in ppl6::db::GenericResult.

void ppl6::db::Result::PrintResult ( )
virtual

Durch AUfruf dieser Funktion wird das Ergebnis des Selects auf STDOUT ausgegeben.

Erneute Implementation in ppl6::db::GenericResult.

pplint64 ppl6::db::Result::Rows ( )
virtual

Diese Funktion liefert die Anzahl Zeilen im Ergebnis des vorhergehenden Selects zurück.

Rückgabe
Anzahl Zeilen (rows). Im Fehlerfall wird -1 zurückgegeben.
Siehe auch
Result::Fields gibt die Anzahl Spalten im Ergebnis zurück

Erneute Implementation in ppl6::db::GenericResult.

int ppl6::db::Result::Seek ( pplint64  row)
virtual

Mit dieser Funktion wird der interne Datenzeiger auf die gewünschte Zeile row gesetzt, so dass diese beim nächsten Aufruf von Result::FetchArray zurückgeliefert wird.

Parameter
[in]rowDie gewünschte Zeile
Rückgabe
Bei Erfolg gibt die Funktion 1 zurück, im Fehlerfall 0.

Erneute Implementation in ppl6::db::GenericResult.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: