The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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) =
      $d->dbmsTestVector;
  
  # Test-Methoden
  
  $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().

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

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

VERSION

1.186

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2020 Frank Seitz

LICENSE

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