Beefy Boxes and Bandwidth Generously Provided by pair Networks vroom
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Referencing bound variables

by hok_si_la (Curate)
on Feb 11, 2005 at 21:28 UTC ( #430291=perlquestion: print w/ replies, xml ) Need Help??
hok_si_la has asked for the wisdom of the Perl Monks concerning the following question:

In the following code, the statement, "print FH $data{name};" does not print anything. I do have a column in my table named 'name'. This has to be a simple error. I should add that I have printed out the generated SQL statement and it works fine. I should be able to assume that my session was successful with RaiseError set to one correct?

############################################################ sub getInfo ############################################################ { my $dbtable = shift; my $function = shift; my $where = shift; my ($dbh, $sth, @datetime, @date, $name, %data); my $i=0; $dbh=DBI->connect('DBI:ODBC:Servers', { RaiseError => 1, AutoCommit => + 0 }); my $sth = $dbh->prepare( "$function FROM $dbtable $where" ); $sth->execute; $sth->bind_columns( \( @data{ @{$sth->{NAME_lc} } } )); $sth->{'ChopBlanks'} =1; @datetime = split(' ', $data{submit_date}); @date = split(/-/,$datetime[0]); my $userid = $data{name}; my $username = findADname($userid); open(FH, "> SQLoutput.txt")or die("Couldn't open SQLoutput.dat\n"); print FH $data{name}; print FH "Hello"; close FH; $sth->finish(); $dbh->disconnect(); #----Needed to free up system resources. }

Thanks for your help,
the hoksila

Comment on Referencing bound variables
Select or Download Code
Re: Referencing bound variables
by Roy Johnson (Monsignor) on Feb 11, 2005 at 21:47 UTC
    Just before the print statement in question, add
    use Data::Dumper; print STDERR Dumper(\%data);
    to see what you have in there. Or just print out keys %data. It's probably 'NAME'.

    Caution: Contents may have been coded under pressure.
      Okay I have an idea what is happening now. It is apparently a session issue. The SQL statement executes alone, and when I dump %data I get this:
      $VAR1 = { 'denied' => undef, 'disk_space' => undef, 'backupdb' => unde +f & on & on.

      Thanks again Roy for your help,
      Hok_si_la
Re: Referencing bound variables
by holli (Monsignor) on Feb 11, 2005 at 21:54 UTC
    well you declared %data in my ($dbh, $sth, @datetime, @date, $name, %data); but you never assign values to it, thus it is empty.

    holli, /regexed monk/
      Doesn't $sth->bind_columns( \( @data{ @{$sth->{NAME_lc} } } )); assign values to %data?
Re: Referencing bound variables
by olivierp (Hermit) on Feb 11, 2005 at 21:59 UTC
    I think you need to $sth->fetch at least once to get your %data filled with values.
    HTH
    --
    Olivier
      Indeed! Fetch will get a record and place the values in the bound variables.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://430291]
Approved by hardburn
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (9)
As of 2014-04-23 21:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (554 votes), past polls