NAME

Quiq::Dbms - Datenbanksystem

BASE CLASS

Quiq::Hash

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

dbms => $dbmsName

Name des DBMS.

version => $version

Versionsnummer des DBMS.

METHODS

Klassenmethoden

new() - Konstruktor

Synopsis

    $d = $class->new($dbms);
    $d = $class->new($dbms,$version);

Arguments

$dbms

Name des DBMS.

$version

Versionsnummer des DBMS.

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.