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

NAME

Prty::Udl - Universal Database Locator

BASE CLASS

Prty::Hash

SYNOPSIS

Klasse laden:

    use Prty::Udl;

Objekt instantiieren:

    my $udlStr = 'dbi#oracle:xyz%xyz_admin:koala3@pluto.gaga.de:1521';
    my $udl = Prty::Udl->new($udlStr);

UDL-Komponenten:

    print $udl->api,"\n";      # dbi
    print $udl->dbms,"\n";     # oracle
    print $udl->db,"\n";       # xyz
    print $udl->user,"\n";     # xyz_admin
    print $udl->password,"\n"; # koala3
    print $udl->host,"\n";     # pluto.gaga.de
    print $udl->port,"\n";     # 1521
    
    my $optionH = $udl->options;
    while (($key,$val) = each %$optionH) {
        print "$key=$val\n";
    }

UDL als String:

    print $udl->asString,"\n"; # $udlStr

DESCRIPTION

Ein Universal Database Locator (UDL) adressiert eine Datenbank, wie ein Universal Resource Locator eine Web-Resource adressiert.

Ein UDL hat den Aufbau:

    api#dbms:db%user:password@host:port;options

Ein Objekt der Klasse kapselt einen UDL und bietet Methoden, um auf die einzelnen Komponenten zuzugreifen.

ATTRIBUTES

api => $str

Der Name der Schnittstelle (z.B. "dbi").

dbms => $str

Der Name der Datenbanksystems (z.B. oracle, postgresql, sqlite, mysql).

db => $str

Der Name der Datenbank.

user => $str

Der Name des Benutzers.

password => $str

Das Passwort des Benutzers.

host => $str

Der Name des Hosts, auf dem die Datenbank sich befindet.

port = $str

Der Port, über welchen die Netzverbindung aufgebaut wird.

options => \%hash

Referenz auf Hash mit optionalen Angaben.

METHODS

Konstruktor

new() - Konstruktor

Synopsis

    $udl = $class->new;
    $udl = $class->new($udlStr);
    $udl = $class->new(@keyVal);

Description

Instantiiere ein Udl-Objekt und liefere eine Referenz auf dieses Objekt zurück.

Akzessoren

api() - Setze/Liefere Wert des Attributs api

Synopsis

    $api = $udl->api;
    $api = $udl->api($api);

dbms() - Setze/Liefere Wert des Attributs dbms

Synopsis

    $dbms = $udl->dbms;
    $dbms = $udl->dbms($dbms);

db() - Setze/Liefere Wert des Attributs db

Synopsis

    $db = $udl->db;
    $db = $udl->db($db);

user() - Setze/Liefere Wert des Attributs user

Synopsis

    $user = $udl->user;
    $user = $udl->user($user);

password() - Setze/Liefere Wert des Attributs password

Synopsis

    $password = $udl->password;
    $password = $udl->password($password);

host() - Setze/Liefere Wert des Attributs host

Synopsis

    $host = $udl->host;
    $host = $udl->host($host);

port() - Setze/Liefere Wert des Attributs port

Synopsis

    $port = $udl->port;
    $port = $udl->port($port);

options() - Setze/Liefere Option-Hash

Synopsis

    $hash = $udl->options;
    $hash = $udl->options($str);
    $hash = $udl->options(@keyVal);
    $hash = $udl->options(\%hash);

Description

Setze/Liefere Hash mit den UDL-Optionen.

Objektmethoden

apiClass() - API-Klasse

Synopsis

    $apiClass = $udl->apiClass;

Description

Liefere die Datanbank API-Klasse. Über diese findet intern der Verbindungsaufbau zur Datenbank statt.

Die API-Klasse für das DBI-API ist:

    Prty::Database::Api::Dbi::Connection

asString() - UDL als String

Synopsis

    $udlStr = $udl->asString;

components() - Komponenten des UDL

Synopsis

    ($api,$dbms,$db,$user,$password,$host,$port,$options) = $udl->components;

Description

Liefere die Komponenten des UDL in der oben angegebenen Reihenfolge.

dsn() - DBI DSN-String

Synopsis

    $dsn = $udl->dsn;

Description

Liefere den DSN-String, um per DBI->connect() eine Verbindung zur Datenbank aufzubauen.

udl() - Setze/Liefere UDL als Ganzes

Synopsis

    $udl->udl($udlStr);
    $udl->udl(@keyVal);
    $udlStr = $udl->udl;

Description

Liefere UDL oder setze UDL als Ganzes aus String oder Liste von Schlüssel/Wert-Paaren. Die Methode liefert keinen Wert zurück.

Der Aufruf ohne Parameter ist identisch zum Aufruf von asString().

VERSION

1.090

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2016 Frank Seitz

LICENSE

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