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/)