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:
$udl
->api,
"\n"
;
# dbi
$udl
->dbms,
"\n"
;
# oracle
$udl
->db,
"\n"
;
# xyz
$udl
->user,
"\n"
;
# xyz_admin
$udl
->password,
"\n"
;
# koala3
$udl
->host,
"\n"
;
# pluto.gaga.de
$udl
->port,
"\n"
;
# 1521
my
$optionH
=
$udl
->options;
while
((
$key
,
$val
) =
each
%$optionH
) {
"$key=$val\n"
;
}
UDL als String:
$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.225
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.