On Wed, Sep 24, 2008 at 12:15:08AM -0700, theshz wrote:
> Hi, I'm new to Catalyst, just went through the Tutorial, everything worked
> fine. But for my reporting application (part of a bigger application where
> CRUD will be more often), I need to run some complicated querries. I did find
> the "Arbitray SQL" article in DBIx's FAQ, but I don't even know how to get to
> DBIx, if that's the right way, more specifically,
>
> Is it possible to get the database handle and run SQL directly as in DBI? I
> read that from Schema I can get its storage, which is the db handle. But from
> a Controller, how do I get the schema object, or the db handle? If the DBIx
> is the correct way to go (which seems a lengthy way to "just" run a query),
> do I do $c->model('Some::Model')->resultset....?
If you aren't planning to use DBIx::Class at all, I'd recommend
Catalyst::Model::DBI
If you're using DBIx::Class, I'd recommend abstracting the query away behind
a resultset method - something like
sub my_custom_query {
my ($self, @args) = @_;
my $code = sub {
my $dbh = shift;
<run query here>
};
$self->result_source->schema->storage->dbh_do($code);
}
If this example isn't sufficient, you should be asking on the dbix-class
list, not here.
--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/