diff options
Diffstat (limited to 'perl/manager/getValues.pm')
-rw-r--r-- | perl/manager/getValues.pm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/perl/manager/getValues.pm b/perl/manager/getValues.pm new file mode 100644 index 0000000..bd0b9a6 --- /dev/null +++ b/perl/manager/getValues.pm @@ -0,0 +1,49 @@ +# +# getValues($dbh, +# [-varcol => varname,] +# [-valcol => varval,] +# [-key => keyname,] +# tablename => indexname, +# ...) + +package NetSNMP::manager::getValues; +require Exporter; +@ISA = qw(Exporter); +@EXPORT_OK=(getValues); + +my $varcol = "varcol"; +my $valcol = "valcol"; +my $key = "lookup"; + +sub getValues { + my $dbh = shift; + my (@vars2, $tmp, $cursor, $row, %results, $i, $cursor); + my ($varcol, $valcol, $key) = ($varcol, $valcol, $key); + my @vars = @_; + while($#vars >= 0) { + $i = shift @vars; + $tmp = shift @vars; + if ($i =~ /^-/) { + $varcol = $tmp if ($i =~ /-varcol/); + $valcol = $tmp if ($i =~ /-valcol/); + $key = $tmp if ($i =~ /-key/); + } else { + push(@vars2,$i,$tmp); + } + } + while($#vars2 >= 0) { + $i = shift @vars2; + $tmp = shift @vars2; +# print "select $varcol,$valcol from $i where $key = '$tmp'\n"; + ($cursor = + $dbh->prepare("select $varcol,$valcol from $i where $key = '$tmp'")) + or die "\nnot ok: $DBI::errstr\n"; + ($cursor->execute) + or die "\nnot ok: $DBI::errstr\n"; + while ( $row = $cursor->fetchrow_hashref ) { + $results{$row->{$varcol}} = $row->{$valcol}; + } + } + return %results; +} +1; |