SOdbcRecordset

Verwaltet die Ergebnis menge einer Abfrage. [Mehr ...]

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SOdbcRecordset
SDbRecord

Attribute

public:

Attribut Typ Beschreibung
aktRowData SMapStringToVariant* Enthält den zuletzt erfolgreich gelesenen Datensatz.

protected:

Attribut Typ Beschreibung
allRowData SPointerList Liste von einem SMapStringToVariant je Datensatz.
columns SPointerList Zeigerfeld auf SOdbcColumns
hdbc SQLHDBC hdbc der SOdbcDatabase
hstmt SQLHSTMT Statement-Handele des letzten SQL-Statements
lastSqlStatement SString Das letzte abgearbeitete SQL-Statement.
pDatabase SOdbcDatabase* Zeiger auf die zu verwendende Datenbank
rowNumber int Enthält die aktuelle Datensatznummber, beginnend mit 1.

Operationen

public:

Name Parameter Rückgabewert Beschreibung
checkSqlError SQLRETURN retcode,
const SString& preText,
BOOL outputToLog=false
BOOL Prüft auf vorhandensein eines Fehlers und gibt eine Meldung aus.
close void Schließt die Datenmenge.
copyToMemTable SMemTable* memTable void Überträgt den kompletten Recordset in ein SMemTable-Objekt.
deinitData void gibt alle Daten frei
getAffectedRows long Gibt die Anzahl der betroffenen Datenzeilen eines UPDATE, INSERT oder DELETE Statements zurück.
getColumn int columnNumber SOdbcColumn*
getColumnsCount int gibt die Anzahl der Spalten aktuellen Select-Abfrage zurück
getCurrentRowNumber int Gibt die aktuelle Zeilennummer zurück.
getHstmt SQLHSTMT Gibt Statement-Handle zurück.
getKeyName SString Funktion sollte überschrieben werden, um den Namen des Feldes mit dem PrimaryKey zurückzugeben.
getRowsCount long Gibt die Anzahl der Ergebniszeilen der letzten Select-Abfrage zurück.
getTableName SString Funktion sollte überschrieben werden, um den Namen der Tabelle zurückzugeben.
gotoFirst BOOL Wählt den ersten Datensatz der aktuellen Abfrage aus.
gotoLast BOOL Wählt den letzten Datensatz der aktuellen Abfrage aus.
gotoNext BOOL Wählt den nächsten Datensatz der aktuellen Abfrage aus.
gotoPrev BOOL Wählt den vorigen Datensatz der aktuellen Abfrage aus.
gotoRecord int rowNumber BOOL Bewegt den Datensatzzeiger zu dem angegebenen Datensatz.
init SOdbcDatabase* pDB BOOL Initialisiert das Recordset und stellt eine Verbindung zur Datenmank her.
makeSqlSelectStatement SString Diese Funktion kann ersetzt werden, um eine andere (evt. komplexere) Abfrage durchzuführen.
makeSqlUpdateStatement const SString& sqlDataPart SString Ertzeugt ein vollständiges SQL-UPDATE-Statement.
sqlExecute SString sqlStatement BOOL Führt ein SQL-Statement auf der Datenbank aus.
toString_Data SString Erzeugt aus der aktuellen Zeile eine Zeichenkette.
toString_Struktur SString Gibt die Datenstruktur als Text zurück.

protected:

Name Parameter Rückgabewert Beschreibung
deinit void Deinitialisiert undschließt das Recordset.
onDataNew void Diese Funktion füllt die Member-Variablen mit den Inhalten des aktuellen Datensatzes.
readDataRow void Liest eine Datenzeile ein.
sqlExecuteSelect SString sqlStatement BOOL Gibt ein SELECT-Statement an die Datenbank und stellt die Ergebnis-Daten im Objekt zu Verfügung.

Detailbeschreibung SOdbcRecordset

Verwaltet die Ergebnis menge einer Abfrage.


Der Zugriff auf die Daten ist immer nur auf den aktuellen Datensatz möglich. Dieser Datensatz kann mit den Funktionen 'gotoFirst()', 'gotoNext()', 'gotoPrev()', 'gotoLast()' und 'gotoRecord(...)' gewechselt werden.

Funktionsbeschreibungen

checkSqlError(SQLRETURN retcode, const SString& preText, BOOL outputToLog=false) BOOL

Prüft auf vorhandensein eines Fehlers und gibt eine Meldung aus.

Parameter:

retcode Sql-Return einer SQL-Funktion, wenn * retcode==SQL_SUCCESS oder * retcode==SQL_SUCCESS_WITH_INFO wird kein Fehler erzeugt
preText voranzustellender Fehlertext, in der Regel der Funktionsname
outputToLog wenn TRUE wird in das ErrorLog geschrieben, sonst wird eine MsgBox angezeigt.

close() void

Schließt die Datenmenge.

copyToMemTable(SMemTable* memTable) void

Überträgt den kompletten Recordset in ein SMemTable-Objekt.

Parameter:

memTable Zeiger auf leere SMemTable

Rückgabe:

memTable gefüllte SMemTable

deinit() void

Deinitialisiert undschließt das Recordset.

deinitData() void

gibt alle Daten frei

getAffectedRows() long

Gibt die Anzahl der betroffenen Datenzeilen eines UPDATE, INSERT oder DELETE Statements zurück.

getColumn(int columnNumber) SOdbcColumn*

Parameter:

columnNumber Spaltennummer ( null-basierend )

Rückgabe:

SOdbcColumn* Zeiger auf SOdbcColumnDescription, NULL bei fehler

getColumnsCount() int

gibt die Anzahl der Spalten aktuellen Select-Abfrage zurück

getCurrentRowNumber() int

Gibt die aktuelle Zeilennummer zurück.

getHstmt() SQLHSTMT

Gibt Statement-Handle zurück.

getKeyName() SString

Funktion sollte überschrieben werden, um den Namen des Feldes mit dem PrimaryKey zurückzugeben.

getRowsCount() long

Gibt die Anzahl der Ergebniszeilen der letzten Select-Abfrage zurück.

getTableName() SString

Funktion sollte überschrieben werden, um den Namen der Tabelle zurückzugeben.

gotoFirst() BOOL

Wählt den ersten Datensatz der aktuellen Abfrage aus.

gotoLast() BOOL

Wählt den letzten Datensatz der aktuellen Abfrage aus.

gotoNext() BOOL

Wählt den nächsten Datensatz der aktuellen Abfrage aus.

gotoPrev() BOOL

Wählt den vorigen Datensatz der aktuellen Abfrage aus.

gotoRecord(int rowNumber) BOOL

Bewegt den Datensatzzeiger zu dem angegebenen Datensatz.

Parameter:

rowNumber neue Datensatznummer, eins-basierend

init(SOdbcDatabase* pDB) BOOL

Initialisiert das Recordset und stellt eine Verbindung zur Datenmank her.

Parameter:

pDB Datenbankzeiger

makeSqlSelectStatement() SString

Diese Funktion kann ersetzt werden, um eine andere (evt. komplexere) Abfrage durchzuführen.

makeSqlUpdateStatement(const SString& sqlDataPart) SString

Ertzeugt ein vollständiges SQL-UPDATE-Statement.

Beispiel:

sqlstatement=makeSqlUpdateStatementname("name='hugo', alter=17");

Parameter:

sqlDataPart String mit den zu schreibenden Werten für den aktuellen Datensatz.

onDataNew() void

Diese Funktion füllt die Member-Variablen mit den Inhalten des aktuellen Datensatzes.

In muss abgeleiteten Klasse sollt diese Funktion überschrieben werden.

Beispiel: Inhalt der Funktion in einer abgeleiteten Kasse

kontaktID = aktRowData->getLongByKey("KontaktID");
vorname = aktRowData->getStringByKey("Vorname");
vorname.trim();

name = aktRowData->getStringByKey("Name");
name.trim();

fullname = vorname + " " + name;

readDataRow() void

Liest eine Datenzeile ein.

sqlExecute(SString sqlStatement) BOOL

Führt ein SQL-Statement auf der Datenbank aus.

sqlExecuteSelect(SString sqlStatement) BOOL

Gibt ein SELECT-Statement an die Datenbank und stellt die Ergebnis-Daten im Objekt zu Verfügung.

toString_Data() SString

Erzeugt aus der aktuellen Zeile eine Zeichenkette.

toString_Struktur() SString

Gibt die Datenstruktur als Text zurück.