Struppi: Datenstrukturen über Sockets

Beitrag lesen

Wie schaut das eigentlich mit deinem selbst gebastelten Module
oder einer Subfunktion... vor ein paar Tagen hattest du darüber
geschrieben. Es handelte sich da wohl irgendwie um DBI.

Jaja, ich erinner mich. Bei den ganzen Fachleuten hier ist mein Mut sowas zu posten nur begrenzt ;-=

Das Ding ist relativ Tricky und ist eine Art weiterentwicklung von fields (auch ein Modul).

Ich weiß nicht ob andere sowas gebrauchen können. Die Idee dahinter ist einmal:
Der Zugriff auf Datenfelder nur über Funkionen, d.h. auch bei einem nicht existierenden Feld gibt es einen Fehler.

Gleichzeitig prüft diese Modul, welche Felder geändert wurden sodass sich beim Speichern in eine DB nur die Felder übertragen werden, die wirklich geändert wurden.

Ein kurzes Beispiel:

Du hast ein Tabelle mit den Feldern: id name text datum

Das ganze würde dann bei mir so aussehen:~~~perl

#------------------------------------------------------------------------------
package einDatensatz;
#------------------------------------------------------------------------------
use strict;
use debug;
use base qw/myObj/; # <- Das ist das Modul

einDatensatz->setFunc( [qw/id name text datum/] );

Hier werden die Funktionen erzeugt

sub load
{
    my $self = shift;
    my $id = shift || return;

my $data = DB::fetch( 'Tabelle',  '*', 'id = ' . DB::quote( $id ) );
    $self->setData( $data) ;

}
sub save
{
    my $self = shift;
    if($self->id)
    {
        DB::insert('Tabelle', $self->getData() );
        $self->id( DB::last_id );
    }
    else
    {
        DB::update('Tabelle', $self->getChange(), 'id=' . $self->id ) if $self->getChange();
    }
}

1;

Anmerkung: DB:: ist noch so ein Hilfsmodul für mySQL Routinen  
  
setData() setzt die Wert der Felder, der Parameter ist ein Hash oder eine Referenz auf eines.  
  
getData() liefert alle Felder und Werte als Hash Referenz zurück  
  
getChange() liefert nur die geänderten Felder zurück.  
  
  

> Magst du mir das mal per eMail zuschicken oder ist das (C)  
> copyright?  
  
Bei mir - kein C - Wenn du es glaubst gebrauchen zu können?  
  
  
Struppi.

-- 
[Javascript ist toll](http://javascript.jstruebig.de/)