[Cascavel-pm] Sugestao - Insercao no Banco

Thomas Britis thomas em tcnet.com.br
Quinta Maio 25 09:49:18 PDT 2006


opendir (DIR, $caminho") || die "\n *** Erro no diretorio $caminho ***";
while (defined ($f = readdir (DIR))) {
	open (FH, "<$f") ...

Patty Silva wrote:
> Igor Obrigada pela dica..
> 
> isso que fiz de entrar no diretorio dar um ls e pegar os arquivos é eficaz?
> 
> chdir ($caminho) || die "\n *** Erro no diretorio $caminho ***";
> 
> for(parse_dir(`ls -ltr`))
> {
> ($arquivo) = @$_;
> 
> 
> 
> ou possui outros metodos??
> 
> 
> Obrigada
> 
> */Igor Sutton <igor.sutton em gmail.com>/* escreveu:
> 
>     Seguem comentários:
> 
>         my %table = (
>             "Variavel 1" => "T1r",
>             "Variavel 2"   => "T2r",
>             "Variavel 3" => "T3r",
>         );
> 
> 
>         $dbh = DBI->connect("DBI:mysql:$DBName",$UserName, $password) ||
>         die("Erro de Conexao:$DBI:errstr") ;
> 
>         chdir ($caminho) || die "\n *** Erro no diretorio $caminho ***";
> 
>         for(parse_dir(`ls -ltr`))
>         {
>         ($arquivo) = @$_;
> 
> 
>     Eu modificaria este trecho de código:
> 
>         open(FH, "<$arquivo") or die("Arquivo nao encontrado");
>         @table = <FH>;
>         shift @table; # descarta primeira linha
>         close(FH);
> 
>         foreach(@table)
>         {
> 
> 
>     para:
>      
>     open FH, "<", $arquivo or die "Problemas para abrir o arquivo
>     $arquivo: $!";
>     # Se o seu arquivo for muito grande, você não vai querer que ele
>     # transforme todo o conteúdo em um graaaaaaaaaande array consumindo
>     # toda a memória. foreach() é utilizado em contexto de array, por
>     isso este
>     # comportamento.
>     while ($_ = <FH>) {
>         next unless $. > 1;
> 
>         if ($_ =~ /^\s*VARIAVEL/)
>         {
>          
>             if( (s#^\s*VARIAVEL-S##) or (s#^\s*VARIAVEL-B##) )
>             {
>            
>            
>            
>              }
>              else
>              {
> 
> 
>     Este aqui também pode ser modificado:
> 
>                       
>         (undef,$variavel,$nome,undef,undef,undef,undef,undef,$data_arquivo,undef,$valor,$var)
>         = split /\s+/, $_;
> 
> 
>     ($nome, $data_arquivo, $valor, $var) = (split /\s+/)[1,2,8,10,11];
> 
>              $data_arquivo =~
>         s/(\d\d\d\d)(\d\d)(\d\d)_(\d\d)(\d\d)/$1-$2-$3 $4:00/;
> 
>              if (defined $table{$variavel})
>              {
>                 
>                 $variavel = $table{$variavel};
>                      
>              }
> 
> 
>     Creio que esteja aqui a sua dúvida, e uma possível solução, pois não
>     lembro se podemos utilizar placeholders em nome de colunas também:
> 
>              $update = "$variavel=$valor";
>              
>              $sql="Insert into tabela1(Nome,DataHora)
>         values($nome,$data) on duplicate key update $update"; 
> 
> 
>     my $query = qq/INSERT INTO TABELA1(Nome, DataHora) values (? , ?) ON
>     DUPLICATE KEY UPDATE ? = ?/;
> 
>     my $sth = $dbh->prepare($query);
>     $sth->execute($nome, $data, $variavel, $valor) or warn "Problemas ao
>     executar SQL: ", $dbh->errstr;
> 
>             # $sth = $dbh->prepare($SQL);
>             # $sth->execute();
>              # $sth->finish();
> 
>             }
>                  
>           }
>            
>         Entao pessoal esta ai!! :) desculpe se anteriormente nao postava
>         o codigo.. daqui pra frente comecarei a postar!! :P
>         Ajuda os companheiros tb!!
> 
>         :***
> 
> 
>     -- 
>     Igor Sutton Lopes
>     http://www.izut.com/ _______________________________________________
>     Cascavel-pm mailing list
>     Cascavel-pm em pm.org
>     http://mail.pm.org/mailman/listinfo/cascavel-pm
> 
> 
> ------------------------------------------------------------------------
> Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu 
> celular. Registre seu aparelho agora! 
> <http://us.rd.yahoo.com/mail/br/tagline/mobile_alerts/*http://br.mobile.yahoo.com/mailalertas/> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm

-- 
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA


Mais detalhes sobre a lista de discussão Cascavel-pm