NAME
Quiq::Dbms - Datenbanksystem
BASE CLASS
SYNOPSIS
use Quiq::Dbms;
# Instantiierung
my $d = Quiq::Dbms->new($dbms);
# Namen der bekannten Datensysteme
my @names = Quiq::Dbms->dbmsNames;
# Boolsche Werte für Tests
($oracle,$postgresql,$sqlite,$mysql,$access,$mssql) = $d->dbmsVector;
# Testmethoden
$bool = $d->isOracle;
$bool = $d->isPostgreSQL;
$bool = $d->isSQLite;
$bool = $d->isMySQL;
$bool = $d->isAccess;
$bool = $d->isMSSQL;
DESCRIPTION
Ein Objekt der Klasse repräsentiert ein Datenbanksystem, bestehend (lediglich) aus dem Namen des Datenbanksystems und dessen Version. Die Klasse stellt Testmethoden für die Art des DBMS zur Verfügung und ist daher vor allem als Basisklasse nützlich, z.B. für Klassen, die SQL-Code generieren oder analysieren.
ATTRIBUTES
METHODS
Klassenmethoden
new() - Konstruktor
Synopsis
$d = $class->new($dbms);
$d = $class->new($dbms,$version);
Arguments
Returns
DBMS-Objekt
Description
Instantiiere ein DBMS-Objekt für DBMS $dbms und liefere eine Referenz auf dieses Objekt zurück. Die Liste der unterstützten DBMSe siehe $class->dbmsNames().
dbmsNames() - Liste der Namen der unterstützten Datenbanksysteme
Synopsis
$namesA | @names = $this->dbmsNames;
Description
Liefere folgende Liste von DBMS-Namen (in dieser Reihenfolge):
Oracle
PostgreSQL
SQLite
MySQL
Access
MSSQL
Objektmethoden
dbmsTestVector() - Vektor für DBMS-Tests
Synopsis
($oracle,$postgresql,$sqlite,$mysql,$access,$mssql) = $d->dbmsTestVector;
Description
Liefere einen Vektor von boolschen Werten, von denen genau einer den Wert "wahr" besitzt, und zwar der, der dem DBMS entspricht, auf den das Objekt instantiiert ist.
Die Methode ist für Programmcode nützlich, der DBMS-spezifische Unterscheidungen macht. Der Code braucht dann lediglich auf den Wert einer Variable prüfen
if ($oracle) ...
statt einen umständlichen und fehleranfälligen Stringvergleich durchzuführen
if ($dbms eq 'Oracle') ...
isOracle() - Teste auf Oracle
Synopsis
$bool = $d->isOracle;
isPostgreSQL() - Teste auf PostgreSQL
Synopsis
$bool = $d->isPostgreSQL;
isSQLite() - Teste auf SQLite
Synopsis
$bool = $d->isSQLite;
isMySQL() - Teste auf MySQL
Synopsis
$bool = $d->isMySQL;
isAccess() - Teste auf Access
Synopsis
$bool = $d->isAccess;
isMSSQL() - Teste auf MSSQL
Synopsis
$bool = $d->isMSSQL;
VERSION
1.155
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2019 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.