On Wed, Jul 19, 2006 at 11:23:38AM -0400, Jason Stelzer wrote: > On Jul 19, 2006, at 10:12 AM, Robert Hicks wrote: > > >Sorry I took so long getting back. What I mean is can I use > >Inline::Java to setup a database connection and then pass that > >connection off to the Perl side so I don't need to have the Oracle > >client installed. I am thinking probably not. > > As long as you're not passing a process boundary or something, it > should work. I've done similar things with ejbs. The down side is > that you'll be writing some very java looking code (creating > iterators, etc). JDBC isn't DBI. [...]
> Your jdbc idea should work similarly, you just cant masquerade its > type as easily. Just make the usual jdbc style calls, unmarshall what > it returns and use eval as your try. If it were me, I'd just create a > perl object that wrapped the reference and stub out the functionality > I need. It'd centralize the marshaling/unmarshaling of datatypes as > well as error detection. I'm working on a PDBC module that acts as a layer over my JDBC module and adds (injects[1]) more DBI-like methods into whatever JDBC classes are being returned by the JDBC driver. So, given a JDBC result set handle, you can do things like: $row_ref = $rs->fetchrow_array_ref; @row = $rs->fetchrow_array; $rows_ref = $rs->fetchall_arrayref; $hash_ref = $rs->fetchall_hashref($key); etc etc. It's a design experiment related to the DBI<->DBD API for DBI v2. It's very unoptimised and far from complete at the moment, but is does work. You can find it at http://svn.perl.org/modules/dbi2/trunk/PDBC/ Anyone interested in helping out is *most* welcome. > Wherever possible I wrap all calls to the jvm in library code that > returns perl friendly objects. If you don't, you bleed java style api > calls all over your codebase which only amplifies maintenance issues. > Then again, I'm working on a fairly large codebase written in perl > thats interfacing with several java apps. I wound up creating a > library of support code for the app to use when talking to the jvm > just to centralize things. The rest of the app uses those objects. Could you send me a copy of that? Tim. [1] Method injection is currently done by some ugly hacks but I hope to use the Moose module Roles once Moose supports runtime Role composition.