Re: DBI/DBD::DB2

2006-06-24 Thread Dan Scott

On 24/06/06, Jonathan Leffler <[EMAIL PROTECTED]> wrote:

On 6/23/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
wrote:
>





If you have a pre-compiled module, then I think your problem is the absence
of DB2 Connect (IIRC) or its equivalent.




The basic connectivity requirement for DBD::DB2 on all platforms is
the DB2 Runtime Client.

If you're compiling DBD::DB2 yourself, then you need the DB2
Application Development Client instead (to get the headers required
for the compile).

Both of these are a free download from
http://ibm.com/db2/udb/support/downloadv8.html.

DB2 Connect (which isn't free) is only required if you are connecting
to zSeries or iSeries servers.

Dan


Re: DBI/DBD::DB2

2006-06-23 Thread Jonathan Leffler

On 6/23/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
wrote:


Hello,
  I am trying to write a perl script to connect to our DB2 database and
do some basic SQL queries.  But I'm having trouble with making
everything play nice.
  I'm on WinXP, and did a manual build of DBI with Visual Studio's
nmake.  That all went fine (as far as I can tell).  So I downloaded the
DBD::DB2 module and unzipped it to my C:/Perl/lib directory (creating
the blib directory from the use lib line below.  Here's the code I'm
trying to test it with...




Normally, you don't compile a module in the Perl install tree - you compile
it some other place and install it into the tree.
So, did you obtain a pre-compiled copy of DBD::DB2?

If so, do you have the necessary support libraries installed?


use lib 'c:/Perl/lib/blib/lib/Bundle';



I'm dubious in the extreme about this line (above).


use DBI;


### Probe DBI for the installed drivers
my @drivers = DBI->available_drivers();

die "No drivers found!\n" unless @drivers; # should never happen

### Iterate through the drivers and list the data sources for
### each one
foreach my $driver ( @drivers ) {
print "Driver: $driver\n";
my @dataSources = DBI->data_sources( $driver );
foreach my $dataSource ( @dataSources ) {
print "\tData Source is $dataSource\n";
}
print "\n";
}


And here is the output:

DBD::DB2 initialisation failed: Can't locate object method "driver" via
package "DBD::DB2" at c:/Perl/site/lib/DBI.pm line 768.

Perhaps the capitalisation of DBD 'DB2' isn't right. At
C:..dbQueryAutoBatch.pl line 33.



If you have a pre-compiled module, then I think your problem is the absence
of DB2 Connect (IIRC) or its equivalent.
If you don't have a pre-compiled module, then your problem is that you need
to compile and install it - and compile it in any directory that is not
underneath the Perl install directory hierarchy.

Not sure if DBI or DBD::DB2 arne't right or I'm just calling something

wrong.  But any help would be appreciated.



There's a chance I misinterpreting the symptoms - I'm not a DB2 expert.

--
Jonathan Leffler <[EMAIL PROTECTED]>  #include 
Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."