Actually get_db_name() is a subroutine .Sorry I didn't include the subroutine.
Here is the connect string;
### Our DBI parameters are:
$dsn="dbi:Sybase:server=$DB_SERVER";
### Connect DB
$dbh = DBI->connect ($dsn, $DB_USER, $DB_PWD) ;
here is the complete code :
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
}
|