Re: DBD::CSV

Matthew Musgrove <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <CAJaTdr1=5EYs=783VcE2O1Pb2YLuJMYXWDhrBU8iUicEziQjjg@mail.gmail.com>
Perhaps this is specific to Mac Office or OS X? I'm running MS Office Pro
Plus 2010 on Windows 7 Pro SP1.


On Thu, Feb 26, 2015 at 11:05 AM, Furst, Carl <[email protected]> wrote:

>   What system, version of Excel?
> I’m using Mac Office on OS 10.9.5
>
>
>  Carl Furst
>
>
>   From: Matthew Musgrove <[email protected]>
> Date: Wednesday, February 25, 2015 at 2:31 PM
> Cc: Perl DBI mailing list <[email protected]>
> Subject: Re: DBD::CSV
>
>    Carl,
>  When I tried it just now (first time using DBD::CSV) it just worked as I
> would expect.
>
>  First, here's my script that I named test.pl:
> #!/bin/env perl
> use strict;
> use warnings;
>
> use Data::Dumper;
> use DBI;
> use Try::Tiny qw( try catch );
>
> my $dbh = DBI->connect( 'DBI:CSV:', '', '', {
>     f_schema => undef,
>     f_dir => '.',
>     f_ext => '.csv/r',
>     RaiseError => 1,
>     PrintError => 0,
> }) or die "Cannot connect: $DBI::errstr";
>
> my $test = try {
>     return $dbh->selectall_arrayref( 'select * from test' );
> }
> catch {
>     my $err = $_;
>     if ( $err =~ m!^.*DBD::CSV::db.*?Execution ERROR: (.*?) at
> .*?DBI/DBD.*?line \d+.*?called from (.*? at \d+)\..*?$!s )
>     {
>         my ( $msg, $where ) = ( $1, $2 );
>         warn "$msg -- $where\n";
>     }
>     else
>     {
>         warn "$err\n";
>     }
>     return {};
> };
>
> print Dumper( $test );
>  __END__
>
> Here is my test.csv file:
> id,value
> a,1
> b,2
> c,3
>
> When I run it with test.csv (whether or not it is open in Excel) I get
> this output:
> $VAR1 = [
>           [
>             'a',
>             '1'
>           ],
>           [
>             'b',
>             '2'
>           ],
>           [
>             'c',
>             '3'
>           ]
>         ];
>
> When I run it from a network drive I get this output:
> Cannot obtain shared lock on /export/home/mmusgrove/test.
> csv: No locks available -- ./test.pl at 18
> $VAR1 = {};
>
>  HTH,
>  Matt
>
>
> On Wed, Feb 25, 2015 at 11:25 AM, Furst, Carl <[email protected]> wrote:
>
>> I think someone wrote about this before, but I just wanted to bring it up
>> again.
>>
>> Is there a way to have DBD::CSV produce a warning or a message (like when
>> printError and raise error is set) to say that it’s waiting for a file
>> lock??
>>
>> For example if I’m using my oh so beloved MS Excel and it locks the csv
>> file and at the same time I’m trying to also run my even more beloved perl
>> script which is trying to open the file for read. The script of course
>> hangs when trying to execute any statements because it’s waiting for the
>> flock put there by MS Excel..Is there a lock timeout? Is that what f_lock
>> => 2 is for??
>>
>> At least I’m pretty sure that’s what’s happening because when I open it in
>> things that put the whole file into memory (like my other beloved text
>> editor) I have no problem, but excel likes to lock things, it seems. When
>> I close the file in Excel, of course, the perl runs like a charm.
>>
>> Thanks,
>> Carl Furst
>>
>> **********************************************************
>>
>> MLB.com: Where Baseball is Always On
>>
>
>
> **********************************************************
>
> MLB.com: Where Baseball is Always On
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.