--- trunk/lib/App/RoomReservation/Reservation.pm 2009/06/28 14:21:10 1086 +++ trunk/lib/App/RoomReservation/Reservation.pm 2009/06/28 18:51:49 1095 @@ -3,7 +3,10 @@ extends 'Frey'; with 'Frey::Web'; -#with 'Frey::Storage'; + +use DBI; +use lib 'lib'; +use Frey::PPI; has ime => ( is => 'rw', @@ -72,10 +75,41 @@ default => sub { 0 }, ); -sub as_markup { +sub dsn { 'DBI:Pg:dbname=room-reservation' } + +my @cols = Frey::PPI->new( class => __PACKAGE__ )->attribute_order; +warn "# cols = ",join(',', @cols), $/; + +sub create_as_markup { my ($self) = @_; - $self->ime; + my $dbh = DBI->connect( $self->dsn, '', '', { RaiseError => 1 } ) || die $DBI::errstr; + $dbh->do( qq{ set client_encoding='utf-8' } ) if $self->dsn =~ m{pg}i; + + my @vals; + my @p; + + map { + push @vals, $self->$_; + push @p, '?'; + } @cols; + + my $n = $#cols + 1; + + my $sql + = 'insert into reservation (' + . join(',', @cols) + . ') values (' + . join(',', map { '?' } @cols ) + . ')' + ; + + warn "sql: $sql\n"; + + my $sth = $dbh->prepare( $sql ); + $sth->execute( @vals ); + + $sth->rows; } 1;