[ic] fetchrow_hashref?

Mike Heins mike at perusion.com
Mon Oct 6 16:38:40 EDT 2003

Quoting Chris Wenham (cwenham at synesmedia.com):
>  I notice that fetchrow_array works in [perl] tags that want to use the $Sql 
> object. But fetchrow_hashref doesn't. It doesn't appear that Interchange 
> gives you real access to the DBI object. How can I get this function and 
> others?
>  I'm using 4.9.7 and PostgreSQL as the database.

You don't mention error logs....but I am guessing you are seeing: CuhQpndB: - [06/October/2003:15:20:43 -0400] pfound /cgi-bin/pfound/t1 Safe: Can't locate DBI object method "fetchrow_hashref" via package "DBD::Pg::st" at (tag 'perl') line 8.

This is because of DBD::Pg subclassing that routine from DBI::st instead of
calling it directly, a change they made a few versions ago.

I have never had a need since I don't typically use DBI in IC embedded Perl,
but I suspect you can get around it by putting in a GlobalSub somewhere:

	package DBD::Pg::st;
	*fetchrow_hashref = \&DBD::_::st::fetchrow_hashref;

I always do:

	my $ary = $Db{foo}->query( { sql => 'select * from foo', hashref => 1 });
	for my $record (@$ary) {

Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.513.523.7621      <mike at perusion.com>

Few blame themselves until they have exhausted all other possibilities.
 -- anonymous

More information about the interchange-users mailing list