Accessing Pervasive.SQL With Perl | |||||||
Page Last Modified: | |||||||
DBI + ODBC - Fetching Examples 4 - catching errors using the code | |||||||
use strict; use warnings; use DBI; print "Connecting to database...\n"; my $dbHandle = DBI->connect('dbi:ODBC:DEMODATA', '', '', {PrintError=>0, RaiseError=>0}); if(defined($dbHandle)) { print "Preparing query...\n"; my $stHandle = $dbHandle->prepare('SELECT Name,Description FROM Course ORDER By Name'); if(defined($stHandle)) { print "Running query...\n"; my $ret = $stHandle->execute(); if(defined($ret)) { print "Returning rows...\n"; while(my @returnRow = $stHandle->fetchrow_array()) { print "Name: $returnRow[0], description: $returnRow[1]\n"; } } else { print "Unable to run query\n"; } $stHandle->finish(); } else { print "Unable to create statement\n"; } print "Disconnecting...\n"; $dbHandle->disconnect(); } else { print "Unable to create database handle\n"; } print "Finished\n"; | |||||||
Now we explicitly check each call and make sure that any allocated resources are freed. We have to create our own error messages, which hopefully are a bit more detailed than this example, e.g. using $DBI::err and $DBI::errstr, and there is the risk of not checking every call, such as the fetchrow_array in the example above where it is assumed that no return value means no more rows left. | |||||||
All content on this site is copyright | |||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |