Datenbank-Klassen.
Mehr ...
- Beschreibung:
- Die nachfolgenden Klassen und Funktionen können verwendet werden, um auf verschiedene Datenbanken zuzugreifen. Es handelt sich dabei um neue Funktionen, die mit Version 6.3.0 eingeführt wurden. Sie wurden vollständig überarbeitet und im eigenen Namespace "ppl6::db" reimplementiert. Die alten Klassen wurden mit Version 6.4.3 entfernt.
- Verwendung:
- Um Queries auf einer Datenbank auszuführen, muss zunächst eine Verbindung hergestellt werden. Im einfachsten Fall wird dazu eine Instanz der gewünschten Datenbank erstellt (z.B. ppl6::db::MySQL) und deren Connect-Funktion aufgerufen, oder die Funktion ppl6::db::Connect aufgerufen, die als Ergebnis einen Pointer auf ein ppl6::db::Database-Objekt zurückliefert.
- Anschließend können mit der ppl6::db::Exec oder ppl6::db::Query-Funktion des Objekts SQL-Queries ausgeführt werden, wobei Exec nur ein "Erfolgreich" zurückliefert, aber keine Daten, und Query ein ppl6::db::Result-Objekt zurückliefert, aus dem das Ergebnis des Queries ausgelesen werden kann.
- Falls man sehr viele Datenbank-Verbindungen parallel benötigt, können zur Verwaltung auch Datenbank-Pools verwendet werden. Hiervon gibt es 2 Stück:
-
ppl6::db::Pool zur Verwaltung von beliebig vielen Verbindungen zu einer einzelnen Datenbank
-
ppl6::db::PoolEx zur Verwaltung von beliebig vielen Verbindungen zu verschiedenen Datenbanken
|
| ppl6::db |
| Namensraum der Datenbank-Funktionen und Klassen.
|
|
Database * ppl6::db::Connect |
( |
const CAssocArray & |
params | ) |
|
- Include:
- #include <ppl6-db.h>
- Beschreibung:
- Mit dieser Funktion wird eine neue Datenbank-Klasse erstellt und eine Verbindung zu der gewünschten Datenbank aufgebaut. Die für die Erstellung der Klasse und die für den Connect erforderlichen oder optionalen Parameter werden mit dem Array
params
übergeben.
- Die erforderlichen oder optionalen Parameter sind Datenbank-abhängig und sind in der jeweiligen Dokumentation zu finden. Es gibt jedoch eine Reihe von Parametern, die bei allen Datenbanken identisch sind:
- host: Der Hostname oder die IP-Adresse des Datenbank-Servers
- port: Der TCP-Port des Datenbank-Servers
- dbname: Der Name der intialen Datenbank. Dieser Parameter kann optional sein, da mit der Funktion Database::SelectDB die Datenbank auch später noch gewechselt werden kann.
- user: Der Name des Benutzers, mit dem sich an der Datenbank authentifiziert werden soll
- password: Das Passwort des Benutzers im Klartext
- Hinzu kommt noch der Parameter type, der den Typ der gewünschten Datenbank angibt. Unterstützt werden zur Zeit folgende Datenbanken:
- mysql: MySQL-Datenbank
- postgres: Postgres-Datenbank
- sybase: Sybase-Datenbank Die tatsächlich unterstützten Datenbanken hängen davon ab, wie PPL6 kompiliert wurde.
- Postgres unterstützt zusätzlich noch die Angabe des Suchpfades:
- searchpath: Kommaseparierte Liste mit den Schemata, die in den Suchpfad aufgenommen werden sollen
- Parameter
-
params | Ein Assoziatives Array mit den für den Connect erforderlichen Parameter. |
- Rückgabe
- Bei Erfolg liefert die 1 zurück, im Fehlerfall 0.
- Beispiel:
-
int DB_Example1() {
param.
Set(
"type",
"mysql");
param.
Set(
"host",
"db.pfp.de");
param.
Set(
"port",
"3306");
param.
Set(
"user",
"patrick");
param.
Set(
"password",
"xxxxxxx");
param.
Set(
"dbname",
"test");
if (!db) {
return 0;
}
}
int ppl6::db::Sybase::GetMaxConnects |
( |
| ) |
|
|
static |
- Beschreibung:
- Anzahl maximaler gleichzeitiger Connects auf Sybase-Datenbanken auslesen
- Rückgabe
- Liefert die maximale Anzahl gleichzeitig erlaubter Connects zurück.
int ppl6::db::Sybase::SetLocale |
( |
const char * |
locale, |
|
|
const char * |
dateformat |
|
) |
| |
|
static |
- Beschreibung:
- Mit dieser Funktion kann festgelegt werden, welche Ländereinstellungen als Default verwendet werden sollen.
- Parameter
-
[in] | locale | Pointer auf den Namen der Lokalisierung, z.B. "us_english" oder "german". Genaueres ist dem Sybase-Handbuch zu entnehmen. |
[in] | dateformat | Gibt an, in welcher Reihenfolge bei einem Datum Tag, Monat und Jahr erwartet werden. Mögliche Werte sind: mdy, dmy, ymd, ydm, myd, und dym. |
- Rückgabe
- Bei Erfolg liefert die Funktion 1 zurück, sonst 0.
- Achtung
- Die Funktion wird von FreeTDS nicht unterstützt. Hier empfiehlt es sich eine Default-Einstellung in der freetds.conf vorzunehmen:
[global]
language=german
...
int ppl6::db::Sybase::SetMaxConnects |
( |
int |
max | ) |
|
|
static |
- Beschreibung:
- Mit dieser Funktion wird die maximale Anzahl gleichzeitiger Connects auf Sybase-Datenbanken festgelegt. Der Default ist unlimitiert.
- Parameter
-
int ppl6::db::Sybase::SetVersion |
( |
int |
version | ) |
|
|
static |
- Beschreibung:
- Legt das grundlegende Verhalten der Sybase CS-Library fest.
- Parameter
-
[in] | version | Kann folgende Werte annehmen:
100 | 10.0 behavior | Initial version |
110 | 11.1 behavior | Unicode character set support, Use of external configuration files to control Client-Library property settings. |
120 | 12.0 behavior | All above features |
125 | 12.5 behavior | unichar support, wide data and columns, SSL |
150 | 15.0 behavior | BCP partitions, BCP computed columns, large identifiers, Unilib, ASE default packet size, scrollable cursors, and clusters support. Also, support for unitext, xml, bigint, usmallint, uint, and ubigint datatypes. Note the Sybase library name change. |
Der Default ist 100 |
- Rückgabe
- Bei Erfolg liefert die Funktion 1 zurück, sonst 0.
Die Funktion muss aufgerufen werden, bevor die erste Sybase-Klasse instantiiert wird!