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

NAME

Quiq::Database::Api - Lowlevel Datenbank-Schnittstelle

BASE CLASS

Quiq::Object

DESCRIPTION

Eine grundlegende Datenbank-Schnittstelle Quiq::Database::Api::* wird durch zwei Klassen definiert:

Quiq::Database::Api::*::Connection

    $db = $class->new($udlObj);  # Datenbankverbindung aufbauen
    $cur = $db->sql($stmt);      # SQL-Statement ausführen
    $db->destroy;                # Datenbankverbindung abbauen

Quiq::Database::Api::*::Cursor

    $cur = $class->new(@keyVal); # Cursor instantiieren
    
    $n = $cur->bindVars;         # Anzahl Bind-Variablen
    $n = $cur->hits;             # Anzahl "Treffer"
    $id = $cur->id;              # Generierter Autoinkrement-Wert
    $titlesA = $cur->titles;     # Kolumnentitel
    
    $cur2 = $cur->bind(@vals);   # Platzhalter einsetzen
    $row = $cur->fetch;          # nächsten Datensatz lesen
    
    $cur->destroy;               # Cursor schließen

Die bislang einzige Lowlevel-Datenbank-Schnittstelle ist DBI, die die beiden Klassen umfasst:

  • Quiq::Database::Api::Dbi::Connection

  • Quiq::Database::Api::Dbi::Cursor

Potentielle andere Lowlevel-Datenbank-Schnittstellen müssen die gleichen Methoden implementieren.

METHODS

Verbindungsaufbau

connect() - Instantiiere Lowlevel-Datenbankverbindung

Synopsis

    $db = $class->connect($udlObj);

Description

Instantiiere eine Lowlevel-Datenbankverbindung auf Basis von UDL-Objekt $udlObj und liefere eine Referenz auf die Datenbankverbindung zurück.

Example

    use Quiq::Database::Api;
    
    my $udl = 'dbi#mysql:test%root';
    my $udlObj = Quiq::Udl->new($udl);
    my $db = Quiq::Database::Api->connect($udlObj);
    print ref($db),"\n";
    __END__
    Quiq::Database::Api::Dbi::Connection

VERSION

1.154

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2019 Frank Seitz

LICENSE

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