[Rio-pm] Problemas utilizando o DBD::CSV

Giuliani Sanches giulianisanches em gmail.com
Segunda Maio 13 05:07:57 PDT 2013


Opa Breno, bom dia.

Obrigado pela resposta.

Realmente estou fazendo mau uso do skip_first_row.

O fato é que meu arquivo não tera informação de colunas na primeira linha,
por isto o col_names. Notei revisando a doc que ao utilizar o col_names o
skip_firts_row será setado pra false, que é o comportamento desejado.

By default DBD::CSV assumes that column names are stored in the first row
> of the CSV file and sanitizes them (see raw_header below). *If this is
> not the case, you can supply an array ref of table names with the col_names
> attribute. In that case the attribute skip_first_row will be set to FALSE*
> .


Abraço.


Giuliani D. Sanches
about.me/giulianisanches


2013/5/10 breno <breno em rio.pm.org>

> Oi Giuliani!
>
> Aparentemente, ao contrário do que a documentação afirma, o
> "csv_tables" só pode ser definido depois do connect(). Não parei pra
> olhar pq mas, enquanto isso não funciona:
>
> my $dbh = DBI->connect( 'DBI:CSV:', undef, undef, {
>   csv_tables => {
>     artifacts => {
>       file => 'ArtifactsList.csv',
>     },
>   }
> });
>
> isso aqui funciona:
>
> my $dbh = DBI->connect ('DBI:CSV:');
>
> $dbh->{csv_tables}{artifacts} = {
>     sep_char     => ",",
>     file         => 'ArtifactsList.csv',
> };
>
> Olhando o seu exemplo, acho que vale lembrar também que dizer os
> col_names e skip_first_row => 1 faz pouco sentido. Se a primeira linha
> tem os nomes dos campos da tabela, o DBD::CSV vai achar e resolver
> isso pra vc automaticamente (ou seja, para cada tabela é só passar o
> 'sep_char' e o 'file').
>
>
> []s!
>
> -b
>
>
> 2013/5/10 Giuliani Sanches <giulianisanches em gmail.com>:
> > Pessoas,
> >
> > Estou tentando utilizar o DBD::CSV porém enfrentando algumas dificuldades
> > como pode ser visto aqui:
> >
> > https://gist.github.com/khaoz/dcc9e8805b8c45b0fc5f
> >
> > A mensagem de erro
> >
> > Execution ERROR: Cannot open D:\Playground\Exporter\artifacts: Permission
> > denied (13)
> >
> > Indica que um determinado diretório de nome artifacts não tem permissão.
> >
> > O fato é que o diretório não existe (e não irá existir) e o que entendi
> pela
> > documentação do módulo é que o valor f_dir inicial (uma das chaves do
> $attr
> > do método connect) é o diretório corrente e o artifacts usado como chave
> > dentro do csv_tables seria o nome da tabela da instrução select e este
> seria
> > executado no ArtifactsList.csv.
> >
> > Onde esta o "pulo do gato" ?
> >
> > Abraço.
> >
> > P.S: Ia copiar a SP-PM tb, mas acho que todo mundo esta em ambas as
> listas
> > :)
> >
> > Giuliani D. Sanches
> > about.me/giulianisanches
> >
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20130513/7c5a0fcd/attachment.html>


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