SOdbcDatabase

Verbindung zur einer ODBC-Datenbank

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SOdbcDatabase  

Attribute

public:

Attribut Typ Beschreibung
hdbc SQLHDBC Windows-Handle der Datenbankverbindung
isConnected BOOL Die Instanz ist mit einer Datenbank verbunden.

protected:

Attribut Typ Beschreibung
connect SString der aktuelle ODBC-Connect-String
dsnName SString Name der DSN wenn vorhanden.
henv SQLHENV Handle der ODBC-Datenbank-Verbindung
typeInfos SPointerList Liste der Datentypen einer Ergebniszeile. Wird beim durchführen einer Abfrage gefüllt.

Operationen

public:

Name Parameter Rückgabewert Beschreibung
checkSqlError SQLHSTMT hstmt,
SQLRETURN retcode,
const SString& preText,
BOOL outputToLog=false
BOOL Prüft auf vorhandensein eines Fehlers und gibt eine Meldung aus.
closeConnection void Beendet eine evtentuell bestehende ODBC-Verbindung.
convertTypeSqlToSvl int sqlType int Gibt für einen SQL-Datentyp den entsprechenden SVL-Variant-Type zurück.
driverExists const SString& driver BOOL Überprüft ob der Treiber mit dem angegebenen Namen auf dem System vorhanden ist.
getAllTables SStringList* paTableList int Noch nicht Implementiert.
getDatabaseName SString Gibt den aktuellen ODBC-Datenbanknamen zurück, bzw. einen Leerstring wenn keine Datenbank angeschlossen ist.
getDatasourceName SString Gibt den aktuellen ODBC-Datasource-Namen zurück, bzw. einen Leerstring wenn keine Datenbank angeschlossen ist
getDriverList SStringList& driverList BOOL Füllt die übergebene Liste mit den Namen aller auf den Rechner verfügbaren ODBC-Treiber.
getSqlErrorText SQLHSTMT hstmt SString Gibt der Fehlertext eines vorangegangenen SQL-Fehlers zurück. Wenn der Fehlertext nur per MessageBox ausgegeben oder in das Logfile geschrieben werden soll, kann auch checkSQLError(...) verwendung finden.
getTableStructure SString tableName,
SStringList* paColumnName,
SStringList* paColumnType,
SStringList* paColumnPrecision
int Noch nicht implementiert.
getTypeName WORD sqlDataType SString Ermittelt den Type-Name zu einem sqlDataType-ID.
odbcConnectDriver const SString& driver,
const SString& dbq
BOOL Stellt die Verbindung zur Datenbank her.
odbcConnectDsn const SString& dsn BOOL Stellt die Verbindung zur Datenbank her.
odbcConnectFiledsn const SString& filedsn BOOL Stellt die Verbindung zur Datenbank her.
sqlExecute SQLHSTMT hstmt,
SString statement
BOOL Führt ein SQL-Statement aus.
sqlExecute SString statement BOOL Gibt ein SQL-Statement an den ODBC-Treiber weiter unter Anforderung eines neuen Handles. Dies ermöglicht z.B. ein zwichenzeitliches Schreiben eines Datensatzes mittes UPDATE ohne den aktuellen Cursor zu verlieren.

protected:

Name Parameter Rückgabewert Beschreibung
odbcConnect BOOL führt die eigentliche Verbindungsaufnahme zur Datenbank au.
readOdbcSourceTypeinfos void Liest dei Type-Infos der Datasource in ein Array.

Detailbeschreibung SOdbcDatabase

Verbindung zur einer ODBC-Datenbank

Funktionsbeschreibungen

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

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

Dazu wird der Funktion ein gültiges Statement-Handle und der Return_Code der Abfrage übergeben. Die Funktion gibt im Fehlerfall (returncode ist nicht SQL_SUCCESS oder SQL_SUCCESS_WITH_INFO) den Fehlertext als MessageBox aus bzw. schreibt ihn in das Logfile, je nachdem, welchen Wert der Parameter outputToLog enthält.
Die Funktion sollte direkt nach der betreffenden Abfrage, auf jeden Fall vor der nächsten Benutzung des Statement-Handles ausgeführt werden.

Parameter:

hstmt Handle der Abfrage, deren Ergebnis überprüft werden soll
retcode Sql-Return-Code einer SQL-Funktion
preText voranzustellender Fehlertext, in der Regel der Funktionsname
outputToLog wenn TRUE wird in das ErrorLog geschrieben, sonst wird eine MsgBox angezeigt.

closeConnection() void

Beendet eine evtentuell bestehende ODBC-Verbindung.

convertTypeSqlToSvl(int sqlType) int

Gibt für einen SQL-Datentyp den entsprechenden SVL-Variant-Type zurück.

Parameter:

sqlType SQL-Datentyp

Rückgabe:

int SVL-Datentyp

driverExists(const SString& driver) BOOL

Überprüft ob der Treiber mit dem angegebenen Namen auf dem System vorhanden ist.

Parameter:

driver Treibername (z.B. Microsoft Access-Treiber (*.mdb))

Rückgabe:

BOOL Treiber ist vorhanden.

getAllTables(SStringList* paTableList) int

Noch nicht Implementiert.

Füllt die übergebene String-Liste mit den Namen aller Tabellen der Datenbank.

Parameter:

paTableList zu füllende Liste

Rückgabe:

int Anzahl der Tabellen in der Datenbank
paTableList Liste der Tabellennamen

getDatabaseName() SString

Gibt den aktuellen ODBC-Datenbanknamen zurück, bzw. einen Leerstring wenn keine Datenbank angeschlossen ist.

getDatasourceName() SString

Gibt den aktuellen ODBC-Datasource-Namen zurück, bzw. einen Leerstring wenn keine Datenbank angeschlossen ist

getDriverList(SStringList& driverList) BOOL

Füllt die übergebene Liste mit den Namen aller auf den Rechner verfügbaren ODBC-Treiber.

Parameter:

driverList zu füllende Liste

Rückgabe:

BOOL Anzahl der gefundenen Treiber
driverList Liste mit den Namen der gefundenen Treiber.

getSqlErrorText(SQLHSTMT hstmt) SString

Gibt der Fehlertext eines vorangegangenen SQL-Fehlers zurück. Wenn der Fehlertext nur per MessageBox ausgegeben oder in das Logfile geschrieben werden soll, kann auch checkSQLError(...) verwendung finden.

Parameter:

hstmt Statement-Handle der letzten Abfrage.

Rückgabe:

SString Fehlertext

getTableStructure(SString tableName, SStringList* paColumnName, SStringList* paColumnType, SStringList* paColumnPrecision) int

Noch nicht implementiert.

Liest die Spalteninformationen einer Tabelle aus.

Parameter:

tableName Tabellenname

Rückgabe:

int Anzahl der Spalten der Tabelle
paColumnName Liste der Spaltennamen
paColumnType Liste der Spaltentypen
paColumnPrecision Liste der Spaltenbreiten bzw. Präzision bei Fließkommazahlen

getTypeName(WORD sqlDataType) SString

Ermittelt den Type-Name zu einem sqlDataType-ID.

Parameter:

sqlDataType SQL-Datentyp

odbcConnect() BOOL

führt die eigentliche Verbindungsaufnahme zur Datenbank au.

odbcConnectDriver(const SString& driver, const SString& dbq) BOOL

Stellt die Verbindung zur Datenbank her.

Benötigt einen vorhandenen ODBC-Treiber und den Dateinamen (incl. Pfad) der Datenbank.
ACHTUNG: Wenn Sie die Datenbank als SVL-Ressource anlegen sin alle Änderungen an den Daten nor Temporär, d.h. sie gehen bei Programmende verloren.

Parameter:

driver Name des ODBC-Treibers
dbq Datenquelle, Name der DB-Datei bzw. des DB-Ordners

Rückgabe:

BOOL Verbindung zur Datenbank wurde hergestellt.

odbcConnectDsn(const SString& dsn) BOOL

Stellt die Verbindung zur Datenbank her.

Benötigt eine vorhandene DSN. Es können sowohl System-DSN als auch Benutzer-DSN verwendet werden.

Parameter:

dsn Name der DSN

Rückgabe:

BOOL Verbindung zur Datenbank wurde hergestellt.

odbcConnectFiledsn(const SString& filedsn) BOOL

Stellt die Verbindung zur Datenbank her.

Es wird eine vorhandene Datei-DSN verwendet.

Parameter:

filedsn Name der File-DSN (incl. Pfad)

Rückgabe:

BOOL Verbindung zur Datenbank wurde hergestellt.

readOdbcSourceTypeinfos() void

Liest dei Type-Infos der Datasource in ein Array.

sqlExecute(SQLHSTMT hstmt, SString statement) BOOL

Führt ein SQL-Statement aus.

Eventuelle Fehler werden per MessageBox angezeigt.

Parameter:

hstmt Statement-Handle, das für diese Abfrage werwendet werden soll
statement SQL-Statement der Abfrage

Rückgabe:

BOOL Statement erfolgreich ausgeführt.

sqlExecute(SString statement) BOOL

Gibt ein SQL-Statement an den ODBC-Treiber weiter unter Anforderung eines neuen Handles. Dies ermöglicht z.B. ein zwichenzeitliches Schreiben eines Datensatzes mittes UPDATE ohne den aktuellen Cursor zu verlieren.

Bei Fehler werden Fehlerausschriften produziert.

Parameter:

statement das auszuführenede SQL-Statement

Rückgabe:

BOOL Statement erfolgreich ausgeführt.