[Dbix-class] [newbie]How to call stored procedure?(doc already
read)
Jason Kohles
email at jasonkohles.com
Fri Dec 28 17:41:08 GMT 2007
On Dec 28, 2007, at 10:23 AM, Tony Winslow wrote:
> Jason Kohles wrote:
>>
>>> Also from DBIx::Class::Manual::Cookbook:
>>
>> Using database functions or stored procedures
>>
>> The combination of "select" and "as" can be used to return
>> the result
>> of a database function or stored procedure as a column value.
>> You use
>> "select" to specify the source for your column value (e.g. a
>> column
>> name, function, or stored procedure name).
>>
> I'm confused of it. The whole paragraph!
> eg: I've a procedure called proc1 which has one output parameter.
> So in the MySQL client env. I have to call it sth. like:
> CALL proc1(@a);
> SELECT @a;
>
> And in programs, I think it is sth. more like this:
> execute('CALL proc1(?)');
> my $result = get_column(1);
>
> The problem now is I don't know how to do it under the DBIx-Class env.
> My Env: Catalyst/TT, DBIx-Class/MySQL
>
Something like this should work...
package MyDB::Something;
use strict;
use warnings;
use base qw( DBIx::Class );
__PACKAGE__->load_components(qw( Core ));
__PACKAGE__->table( "fake_table_name_for_proc1" );
__PACKAGE__->result_source_instance->name( \'(select * from
proc1(?))' );
Then you should be able to do:
my $rs = $schema->resultset( 'Something' )->search( undef, { bind =>
\@a } );
I'm not a big fan of MySQL though, so I don't know if it has any
special requirements for this stuff...
--
Jason Kohles, RHCA RHCDS RHCE
email at jasonkohles.com - http://www.jasonkohles.com/
"A witty saying proves nothing." -- Voltaire
More information about the DBIx-Class
mailing list