Re: set_sql
[prev]
[thread]
[next]
[Date index for 2005/06/14]
hmm,
looks like you may not be passing what you think into your handle.
=>"Can't bind a reference (EQ::machine=HASH(0xcb3d14))"
On Jun 14, 2005, at 6:55 AM, ian.goldstein@xxx.xxx wrote:
> Good Morning.
>
> First let me say thanks to all the contributors for Class::DBI,
> very cool product.
> My question is on set_sql. I have a sql statement for a class that
> works with a single place holder, but if I introduce a second place
> holder, I get an error:
>
> Can't bind a reference (EQ::machine=HASH(0xcb3d14)) at /home/
> goldstia/lib/DBIx/ContextualFetch.pm line 51.
> at /home/goldstia/lib/DBIx/ContextualFetch.pm line 51
> DBIx::ContextualFetch::st::_untaint_execute
> ('DBIx::ContextualFetch::st=HASH(0xde74f4)', 'EQ::machine=HASH
> (0xcb3d14)', 67) called at /home/goldstia/lib/DBIx/
> ContextualFetch.pm line 31
> DBIx::ContextualFetch::st::execute
> ('DBIx::ContextualFetch::st=HASH(0xde74f4)', 'EQ::machine=HASH
> (0xcb3d14)', 67) called at /home/goldstia/tmp/PRISM/PRISM.pm line 88
> EQ::machine_file::machine_file_latest('EQ::machine_file',
> 'EQ::machine=HASH(0xcb3d14)', 67) called at ./get_hostsbyproj line 21
>
> ======================================================================
> =======================
>
> The class itself looks like this ( it is the second placeholder
> that causes the error message f== file_name_key = ?
>
> package EQ::machine_file;
> use base "EQ::prismDB";
> EQ::machine_file->table('machine_file');
> EQ::machine_file->columns(All=> qw/machine_key file_content_key
> file_name_key version ctime userid groupid fmode/);
> EQ::machine_file->columns(Primary=> qw/machine_key file_name_key
> version/);
> EQ::machine_file->has_a('machine_key' => 'EQ::machine');
> EQ::machine_file->has_a('file_name_key' => 'EQ::file_name');
> EQ::machine_file->has_a('file_content_key' => 'EQ::file_content');
> EQ::machine_file->has_a('ctime' => 'Time::Piece',
> inflate => sub { Time::Piece->strptime(shift, "%
> m:%d:%Y:%H:%M:%S")},
> deflate => 'ymd');
> #
> # Creates a nice method to extract data from a view that has an
> object type of machine_file
> #
> __PACKAGE__->set_sql(machinefilelatest =>
> qq( SELECT *
> from machine_file_latest
> where machine_key = ? and file_name_key = ?));
>
> sub machine_file_latest {
> my $class = shift;
> my $machine_key = shift;
> my $file_name_key = shift;
> my $sth = $class->sql_machinefilelatest;
> $sth->execute($machine_key,$file_name_key);
> return $class->sth_to_objects($sth);
> }
>
>
> The calling program looks like this:
>
> my $fobj = EQ::file_name->search('name'=>"/etc/hosts")->next;
> $fnk = $fobj->file_name_key;
>
> $mfo = EQ::machine_file->machine_file_latest($a->machine_key ,$fnk);
>
> Any thoughts or suggestions would be greatly appreciated.
>
> -- Ian
>
>
>
|
set_sql
ian.goldstein 11:55 on 14 Jun 2005
|
|
|
Re: set_sql
yoorobot 13:00 on 14 Jun 2005
|