On 6/5/07, Lee Standen <[EMAIL PROTECTED]> wrote:

It comes down to the purpose of the methods...

find() is intended for searches which return only a single result, so it
makes sense to return a row, rather than a resultset.

search() is intended for searches which return multiple results.

Last I checked, find() needs you to specify your primary keys as the
search terms, which guarantees uniqueness (primary keys have to be
unique, remember?).  Note that primary key could be over two or tree
columns :)

ktnxbye.




John Goulah wrote:
> On 6/5/07, *Brandon Black* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     On 6/5/07, John Goulah <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>> wrote:
>      > So I've noticed that search returns a "resultset"
>      > (MyApp::ResultSet::Tablename) and find returns a "row_object"
>      > (MyApp::Model::MyDB::Tablename).  I suppose this makes some
>      > sense since search may return many rows while find is designed to
>     find one
>      > row.  However it seems that its more useful to deal with the
>     resultset
>      > object, for example if I have defined my own custom resultset
>     functions
>      > within, I can reuse this returned object to call them, perhaps
>     even using
>      > some of the already populated fields as parts of the where clause
>     (such as a
>      > primary key like user_id).  Maybe not the best idea, but seems
>     easier than
>      > passing the same user_id into each query.   In any case, is there
>     any way to
>      > force/cast the "row_object" into a result set, or are we stuck
>     with only
>      > using search if we want a ResultSet back?
>      >
>
>     If you want to find a single record, you use ->find(), if you want a
>     resultset which represents a single record, you use ->search({
>     pk_colname => "pk_value" });
>
>     -- Brandon
>




Ok, I appreciate the help, but rather than reiterating what I already had in
the initial post as responses, how about a real answer?  Anyway I found the
answer myself, for anyone interested:

From DBIx::Class::Manual::Cookbook (
http://search.cpan.org/~mstrout/DBIx-Class-0.07000/lib/DBIx/Class/Manual/Cookbook.pod#Retrieving_a_row_object
)

 my $schema = $cd->result_source->schema;
 my $artist_rs = $schema->resultset('Artist');


Thanks,
John
_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
Wiki: http://dbix-class.shadowcatsystems.co.uk/
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
Searchable Archive: http://www.mail-archive.com/[email protected]/

Reply via email to