HitMan has asked for the wisdom of the Perl Monks concerning the following question:
here is the complete code :### Our DBI parameters are: $dsn="dbi:Sybase:server=$DB_SERVER"; ### Connect DB $dbh = DBI->connect ($dsn, $DB_USER, $DB_PWD) ;
sub process_database { for ($i=0;$i<$#databases+1;$i++) { $database = $databases[$i] ; ### Use DB $dbh->do("USE $database") || log_message ("SERI","Database error $ +dbh->errstr") ; get_db_name(); ## output here is okay ### Get details from sysobjects $sql = ""; $sql = "SELECT 1 " ; $sth = $dbh->prepare($sql); $sth->execute(); get_db_name(); ## output here is master $objcount =0; while (@row = $sth->fetchrow_array) { ## might give an error as th +ere wasn't any execute statement before this ($object = $row[0]) =~ s/\s//g ; $sql = ""; $sql = "GRANT ALL ON $object TO PUBLIC" ; # $dbh->do($sql) || log_message ("SERI","Database error $dbh->er +rstr"); $objcount ++; } ## end of while get_db_name(); ## output here is okay log_message("INFO","$objcount objects affected in $database"); } ## end of for } ## end of subroutine ############################ GET DB NAME() ########################### +######### sub get_db_name { $sql_dbname = "select db_name() "; $sth = $dbh->prepare($sql_dbname); $sth->execute() || die "ERROR : Database error $sth->errstr\n" ; while (@row = $sth->fetchrow_array) { $_ = $row[0]; s/\s//g; print "IN DATABASE $_ \n"; } ## end of while }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: DBI Not Working Part 2
by MZSanford (Curate) on Aug 16, 2001 at 15:18 UTC | |
by Anonymous Monk on Aug 16, 2001 at 15:25 UTC | |
by MZSanford (Curate) on Aug 16, 2001 at 15:30 UTC | |
by Anonymous Monk on Aug 16, 2001 at 15:40 UTC |