RSS

Simples agenda usando DBIx::Class em Perl

11 maio

neste exemplo mostro como usar DBIx::Class + SQLite para um trabalho simples uma agenda eletronica
vamos fazer o feito ,primeiro precisamos criar as tabelas

CREATE TABLE agenda (
nome VARCHAR(50),
telefone INT(10),
cidade VARCHAR(50)
);

add num banco chamado example.db dentro duma pasta chamada DB ótimo temos nosso banco
criamos um diretório com nome “MyDatabase” dentro desde diretório criamos Main.pm com conteudo

package MyDatabase::Main;
use base qw/DBIx::Class::Schema/;
__PACKAGE__->load_classes(qw/agenda/);

1;

feito isso criamos outra pasta com nome Main e dentro desta pasta criamos o arquivo agenda.pm
contendo dados das tabelas

package MyDatabase::Main::agenda;
use base qw/DBIx::Class/;
__PACKAGE__->load_components(qw/PK::Auto Core/);
__PACKAGE__->table(‘agenda’);
__PACKAGE__->add_columns(qw/ nome telefone cidade /);

1;

ótimo volte para pasta inicial onde tem o DB e o MyDatabase crie uma rquivo chamado agenda.pl com conteudo

#!/usr/bin/perl -w
#http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class/Manual/Intro.pod#It%27s_all_about_the_ResultSet
use MyDatabase::Main;

my $schema = MyDatabase::Main->connect(‘dbi:SQLite:db/example.db’);
Inicio:
mostra();
my @all = $schema->resultset(‘agenda’)->all;
my $all = $schema->resultset(‘agenda’);
print “total de cadastros $alln”;

print “digite o numero da opçãon”;
chomp($escolha=);
if (!!$escolha) {

####### busca simples
if($escolha eq “4”) {
print “digite o que buscarn”; chomp($busca1=);
my $rs = $schema->resultset(‘agenda’)->search(
{ nome => “$busca1” }
);
while (my $track = $rs->next) {
my $nome=$track->nome; my $tel=$track->telefone; my $local=$track->cidade;
print “$nome $tel $localn”;
}
goto Inicio;
}
####### listando lista de nomes
if($escolha eq “3”) {
my $rd = $schema->resultset(‘agenda’);
while (my $track = $rd->next) {
my $nome=$track->nome; my $tel=$track->telefone; my $local=$track->cidade;
print “$nome $tel $localn”;
}
sleep 2;
goto Inicio;
}
####### add cadastro
if($escolha eq “1”) {
print “digite um nomen”; chomp($nome=);
print “digite o telefonen”; chomp($telefone=);
print “digite a cidaden”; chomp($cidade=);
if((!!$nome) && (!!$telefone) && (!!$cidade)) {
my $novo = $schema->resultset(‘agenda’)->new(
{ nome => “$nome”, telefone => “$telefone”, cidade => “$cidade”});
$novo->insert;
}
goto Inicio;
}
###### remover cadastro
if($escolha eq “2”) {
print “digite um nome para remover da agenda n”; chomp($nome=);
$schema->resultset(‘agenda’)->search({ nome => “$nome” })->delete;
goto Inicio;
}

if($escolha eq “5”) { exit; }

}
sub mostra {
print ”
By Cooler
|——————————————–|
| Agenda com SQLite e DBIx::CLass |
|——————————————–|
| 1- adicionar cadastro |
| 2- remover cadastro |
| 3- listar cadastros |
| 4- procurar cadastro |
| 5- sair |
|——————————————–|
“;
}

para rodar “perl agenda.pl” pronto você tem uma agenda com DBIx::Class mais informações vide no CPAN
isso só foi uma receita simples de como pode ser usado este módulo

link sobre mais informações do módulo
http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class.pm

Anúncios
 
Deixe um comentário

Publicado por em maio 11, 2010 em Perl

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: