connect to db2 database using dbi?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Kate Perry

    connect to db2 database using dbi?

    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_S PI_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 ("fatalsToBrows er");
    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=$qu ery->param('Project Num');

    # 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="ProjectNu m">
    <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:O DBC:DB239", $PROJUSER, $PROJPassword)
    or die "Couldn't connect to database: $DBI::errstr\n" ;

    $DB2Query="SELE CT ADXSPIT.PROJECT _NUM, ADXSPIT.PROJECT _NAME, ADXSPIT.PROJECT _DESC FROM ADXSPIT.ADXSPIT _SPI_MASTER where
    ADXSPIT.PROJECT _NUM=$ProjectNu m;";

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

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

    $ProjInfo=$dbqu ery->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;
    }

Working...