PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Michael Peppler <mpeppler at peppler dot org>
Subject: Re: Column headings question
Date: Oct 7 2009 6:18PM

On Oct 7, 2009, at 5:39 PM, Louis Proyect wrote:

> Is there an easier way to access column headings than this:
>
> @res=$dbh->ct_sql("exec stored_procedure");
>
> @res2=$dbh->ct_sql("sp_help table_name"); ---> this is the table that
> maps to the stored procedure results
>
> $cntr = 0;
>
> foreach $row (@res2)   # Loop through each row
> {
>  print "@$row[0]: ";
>  print "$res[0][$cntr]\n";
>  $cntr++;
> }
>
> Most importantly, this only works if the stored procedure is returning
> results that map to a single table. If the results are from joined
> tables, you are out of luck.
>

You can use the optional doAssoc flag to have ct_sql return an array  
of hash references, where each row is keyed on the column names.

Something like

@res = $dbh->ct_sql($cmd, undef, 1);
foreach my $row (@res) {
    foreach my $col (keys(%$row)) {
	print "$col: $row->{$col}\n";
    }
}

Michael
--
Michael Peppler
Sybase on Linux FAQ: http://www.peppler.org/FAQ/linux.html

"A successful [software] tool is one that was used to do something  
undreamed of by its author." -- S. C. Johnson