NAME
Quiq::Udl - Universal Database Locator
BASE CLASS
SYNOPSIS
Klasse laden:
use Quiq::Udl;
Objekt instantiieren:
my $udlStr = 'dbi#oracle:xyz%xyz_admin:koala3@pluto.gaga.de:1521';
my $udl = Quiq::Udl->new($udlStr);
UDL aus Konfigurationsdatei:
my $udl = Quiq::Udl->new('test-db');
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. Kommen Metazeichen im Passwort oder den Options vor, können diese mit \ maskiert werden.
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() - Instantiiere UDL-Objekt
Synopsis
$udl = $class->new;
$udl = $class->new($udlStr);
$udl = $class->new(@keyVal);
$udl = $class->new($name);
Arguments
- $udlStr
-
UDL als Zeichenkette.
- @keyVal
-
UDL-Komponenten.
- $name
-
Name aus Konfigurationsdatei
~/.db.conf
.
Returns
UDL-Objekt
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.
Klassenmethoden
split() - Setze/Liefere UDL als Ganzes
Synopsis
($api,$dbms,$db,$user,$password,$host,$port,$options) =
$udl->split($udl);
Description
Zerlege den UDL $udl in seine Komponenten und liefere diese zurück. Für eine Komponente, die nicht im URL enthalten ist, wird ein Leerstring ('') geliefert.
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:
Quiq::Database::Api::Dbi::Connection
asString() - UDL als String
Synopsis
$udlStr = $udl->asString;
Options
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.222
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.