[Cascavel-pm] conectando db com perl

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Quarta Agosto 18 16:29:57 CDT 2004


On Wed, 18 Aug 2004, Guilherme Oliveira wrote:
>  Boa tarde

  Boa tarde, meu caro Guilherme!

> tenho algumas questões e gostaria de receber as respostas mesmo que
> parciais

  Vamos ver se eu consigo ajudar... por favor, se alguma coisa não ficar
clara o suficiente, poste novamente, que eu me esforço mais. :-)

>    1 Como me  conecto a um banco de dados com perl Access ou SQL

  Configure uma Fonte de Dados ODBC, e use DBI e DBD::ODBC.
  Leia mais sobre isso em

  DBI
  http://search.cpan.org/~timb/DBI-1.43/DBI.pm

  DBD::ODBC
  http://search.cpan.org/~jurl/DBD-ODBC-1.09/ODBC.pm

  Caso você tenha uma fonte de dados MS-SQL (Microsoft SQL Server),
acredito que possa usar um driver específico, ou ODBC. Infelizmente, a
busca que eu fiz não trouxe drivers específicos para servidores Microsoft
SQL Server... o que não quer dizer que eles não existam. :-)

>    2 Tendo dentro de um diretótio varias paginas em html como faço para
> altmomatizar a inserção de todas as paginas no db lgo como *.htm ( se
> tivesse um modo de pegar as informações na web e joga-las direto no db
> seria show) pq sempre vejo o pessoal falar que dá que é tranquilo mas até
> agora não encontrei documentação em portugues sobre o assunto.

  Muito possivelmente não há documentação em português sobre este assunto.
  Eu não tenho idéia do que você deseja usar como chave primária para os
dados, mas posso sugerir o nome do arquivo. Assim, alguma coisa como

  #!/usr/bin/perl
  use strict;
  use DBI;
  use English;
  my $dbh = DBI->connect( $data_source, $user, $password )
    or die DBI::errstr;
  my $sth =
    $dbh->prepare( 'INSERT INTO Pages( page_name, page_data )
                    VALUES ( ?, ? ) '
                 );
  local $INPUT_RECORD_SEPARATOR = undef;
  while( my $filename = <*.html> ){
    open HTML, $filename
      or die $!;
    my $data = <HTML>;
    $sth->execute( $filename, $data )
      or warn "$filename: ".$sth->errstr()."\n";
    close HTML;
  }
  $dbh->disconnect;
  __END__

>    3 Tendo colocado as paginas no formato txt no banco vou usar ER para
> conseguir separar o que é texto do que é codificação html.

  NUNCA FAÇA ISSO!!!!!!
  NUNCA FAÇA ISSO!!!!!!

  Você não vai conseguir gerar uma expressão regular inteligente o
suficiente para remover os tags HTML sem causar dano às suas páginas.

  A razão para isso está explicada neste arquivo:
  http://www.perlmonks.org/index.pl?node_id=284298

  Use o Parse::RecDescent no lugar:
  http://search.cpan.org/search?mode=module&query=Parse%3A%3ARecDescent

>    Ai fica a pergunta como pegar o campo da tabela que contenha o texto
> bruto e inserir no outro campo apenas a extração da ER.

  Não acho que você tenha problema para deduzir isto dos exemplos que eu
dei acima, e dos artigos que te indiquei para ler. :-) Se você tiver
problemas, poste algum código seu aqui que a gente ajuda você a resolver o
problema, do jeito que você começar...

>    Sou novo no perl e estou usando pela sua facilidade na manupilaçao de
> textos.

  Muito bom! Benvindo! Espero que você goste e fique!

>    Se alguém tiver material em português sobre os tópicos abordados ajuda
> ainda mais.

  Eu não tenho. Lamento. Acredito que você terá muito mais acesso e
possibilidades de pesquisa se aprender um pouco de inglês (isto não se
aplica apenas ao Perl, mas a qualquer coisa de computação moderna, eu
acredito...).

>    Pq aprender como se faz é sem duvida muito mais gratificante do que
> pegar pronto.

  :-) Este é o espírito!
  Espero que você se divirta muito por aqui!
  Boa sorte, mantenha a gente informado e putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho is BsC in Computer Science,
  Certified Oracle DBA, Sao Paulo PM Leader, Cascavel
  PM Moderator, Perl Monk and Perl/Unix affictioned.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


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