NAME

Quiq::Dbms - Datenbanksystem

BASE CLASS

Quiq::Hash

SYNOPSIS

use Quiq::Dbms;

# Instantiierung
my $d = Quiq::Dbms->new($dbms);

# Namen der unterstützten Datenbanksysteme
my @names = Quiq::Dbms->dbmsNames;

# Boolsche Variable für Tests

($oracle,$postgresql,$sqlite,$mysql,$access,$mssql,$jdbc) =
    $d->dbmsTestVector;

# Test-Methoden

$bool = $d->isOracle;
$bool = $d->isPostgreSQL;
$bool = $d->isSQLite;
$bool = $d->isMySQL;
$bool = $d->isAccess;
$bool = $d->isMSSQL;
$bool = $d->isJDBC;

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);
$d = $class->new($db);

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().

Klassenmethoden

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
JDBC

Objektmethoden

dbmsTestVector() - Vektor für DBMS-Tests

Synopsis

($oracle,$postgresql,$sqlite,$mysql,$access,$mssql,$jdbc) = $d->dbmsTestVector;

Description

Liefere einen Vektor von boolschen Werten, von denen genau einer wahr ist, und zwar derjenige, 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;

Description

Prüfe, ob das Datenbanksystem Oracle ist. Wenn ja, liefere wahr, sonst falsch.

isPostgreSQL() - Teste auf PostgreSQL

Synopsis

$bool = $d->isPostgreSQL;

Description

Prüfe, ob das Datenbanksystem PostgreSQL ist. Wenn ja, liefere wahr, sonst falsch.

isSQLite() - Teste auf SQLite

Synopsis

$bool = $d->isSQLite;

Description

Prüfe, ob das Datenbanksystem SQLite ist. Wenn ja, liefere wahr, sonst falsch.

isMySQL() - Teste auf MySQL

Synopsis

$bool = $d->isMySQL;

Description

Prüfe, ob das Datenbanksystem MySQL ist. Wenn ja, liefere wahr, sonst falsch.

isAccess() - Teste auf Access

Synopsis

$bool = $d->isAccess;

Description

Prüfe, ob das Datenbanksystem Access ist. Wenn ja, liefere wahr, sonst falsch.

isMSSQL() - Teste auf MSSQL

Synopsis

$bool = $d->isMSSQL;

Description

Prüfe, ob das Datenbanksystem MSSQL ist. Wenn ja, liefere wahr, sonst falsch.

isJDBC() - Teste auf JDBC

Synopsis

$bool = $d->isJDBC;

Description

Prüfe, ob das Datenbanksystem JDBC ist. Wenn ja, liefere wahr, sonst falsch.

VERSION

1.217

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2024 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.