Hi Ron, nice to meet you and thank you so much for your soon answer.

Got it! now I'll never forget it: it's Perl ;)!

Well, I'm working with the SQL::Statement module. The code with I'm dealing
is the following code:
################################################################################

    use SQL::Statement;
    my $sql    = "SELECT a FROM b JOIN c WHERE c=? AND e=7 ORDER BY f
DESC LIMIT 5,2";
    my $parser = SQL::Parser->new();
    $parser->{RaiseError}=1;
    $parser->{PrintError}=0;
    $parser->parse("LOAD 'MyLib::MySyntax' ");
    my $stmt = SQL::Statement->new($sql,$parser);
    printf "Command             %s\n",$stmt->command;
    printf "Num of Placeholders %s\n",scalar $stmt->params;
    printf "Columns             %s\n",join( ',', map {$_->name}
$stmt->column_defs() );
    printf "Tables              %s\n",join( ',', map {$_->name}
$stmt->tables() );
    printf "Where operator      %s\n",join( ',', $stmt->where->op() );
    printf "Limit               %s\n",$stmt->limit();
    printf "Offset              %s\n",$stmt->offset();

    # these will work not before $stmt->execute()
    printf "Order Columns       %s\n",join(',', map {$_->column}
$stmt->order() );

################################################################################


And the problem I have is that I can't access the $stmt->column_defs()
through the
map{$_->name} function.

When I do something like print DUMP $stmt->column_defs();, I can
visualize the content

of the hash that contents information about the columns of the query.

Have you any ideas of what I'm doing wrong?

Thanks in advance!

Mauricio.



2014-09-10 17:19 GMT-05:00 Ron Savage <r...@savage.net.au>:

> Hi Mauricio
>
> >Good morning!
>
> >I'm a Mexican PERL fan, and I write first for congratulate you for >this
> great job.
>
> Glad to hear you're using Perl.
>
> And yes, it's Perl, not PERL.
>
> >I've just download the SQL:Statement from CPAN via MCPAN shell since >my
> Ubuntu console, but I have some issues with the map {$_->name}
> >$stmt->column_defs() method for parsing it.
>
> >Indeed {$_->name} returns an error saying that name can't be found on
> >unbless object.
>
> We need to see the code. Post the shortest possible sample code which
> produces this error.
>
> Are you connecting to a real, pre-existing database with pre-existing
> tables?
>
> If so, how /exactly/ are you doing that?
>
> >I will appreciate too much, any information about this error that was
> >taken from CPAN documentation of this module.
>
> --
> Ron Savage - savage.net.au
>

Reply via email to