connect to db2 database using dbi?

K

Kate Perry

I am trying to execute a query on a db2 database using the dbi module. I'm wondering if someone can take a look at my code and tell me what I'm doing wrong. I'm assuming it's a problem with my query, but my query works fine in access, so I don't know. I guess I don't really understand how queries work differently in db2. I typically connect to a sql database.

Here is the error I'm getting:
Couldn't execute query: [IBM][CLI Driver][DB2] SQL0204N "(my userid here).ADXSPIT_SPI_MASTER" is an undefined name. SQLSTATE=42704
(SQL-S0002)(DBD: st_execute/SQLExecute err=-1)

My database name is DDXSPI1D, residing on server DB239. ADXSPIT.ADXSPIT_SPI_MASTER is the table name.

Here is my code:

#!/usr/bin/perl

# Include necessary modules
use CGI;
use CGI::Carp ("fatalsToBrowser");
use IO::File;
use DBI;

# create our CGI
$query = new CGI;

print "Content-Type: text/html\n\n";
print $query->start_html(-title=>"SLA DB2 TEST",);

#Include config and database info
require("../config/slaconfig.txt");

# Get SLA that is passed into this page
$ProjectNum=$query->param('ProjectNum');

# If the ProjectNum is undefined, just print out
# the form to search for a ProjectNum
if ($ProjectNum == undef)
{

print<<EOM;
<body>
<center>
<h1>SLA DB2 Project Test</h1>
<form name="GetProj" method="post" action="../../cgi-bin/lrrform_DB2.pl">
Please enter a Project Number: <input type="text" size="10" name="ProjectNum">
<p><input type="submit" value="Submit">&nbsp;<input type="reset" value="Clear Form">
</p>

</form>
</center>
</body>
</html>
EOM
}
else
{
# Connect to the database
$dbh = DBI->connect("dbi:ODBC:DB239", $PROJUSER, $PROJPassword)
or die "Couldn't connect to database: $DBI::errstr\n";

$DB2Query="SELECT ADXSPIT.PROJECT_NUM, ADXSPIT.PROJECT_NAME, ADXSPIT.PROJECT_DESC FROM ADXSPIT.ADXSPIT_SPI_MASTER where
ADXSPIT.PROJECT_NUM=$ProjectNum;";

#query database
$dbquery=$dbh->prepare($DB2Query) ||
die "Prepare failed: $DBI::errstr\n";

$dbquery->execute() ||
die "Couldn't execute query: $DBI::errstr\n";

$ProjInfo=$dbquery->fetchrow_array;

$dbquery->finish();

#print results
print <<EOM;
<body>
<center>
<h1>SLA DB2 Project Test RESULTS</h1>
This is cool!
</p>

</form>
</center>
</body>
</html>
EOM
print $ProjInfo;
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top