getValues.pm
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:1k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #
  2. # getValues($dbh, 
  3. #           [-varcol => varname,]
  4. #           [-valcol => varval,]
  5. #           [-key => keyname,]
  6. #           tablename => indexname,
  7. #           ...)
  8. package NetSNMP::manager::getValues;
  9. require Exporter;
  10. @ISA = qw(Exporter);
  11. @EXPORT_OK=(getValues);
  12. my $varcol = "varcol";
  13. my $valcol = "valcol";
  14. my $key = "lookup";
  15. sub getValues {
  16.     my $dbh = shift;
  17.     my (@vars2, $tmp, $cursor, $row, %results, $i, $cursor);
  18.     my ($varcol, $valcol, $key) = ($varcol, $valcol, $key);
  19.     my @vars = @_;
  20.     while($#vars >= 0) {
  21. $i = shift @vars;
  22. $tmp = shift @vars;
  23. if ($i =~ /^-/) {
  24.     $varcol = $tmp if ($i =~ /-varcol/);
  25.     $valcol = $tmp if ($i =~ /-valcol/);
  26.     $key = $tmp if ($i =~ /-key/);
  27. } else {
  28.     push(@vars2,$i,$tmp);
  29. }
  30.     }
  31.     while($#vars2 >= 0) {
  32. $i = shift @vars2;
  33. $tmp = shift @vars2;
  34. # print "select $varcol,$valcol from $i where $key = '$tmp'n";
  35. ($cursor =
  36.  $dbh->prepare("select $varcol,$valcol from $i where $key = '$tmp'"))
  37.     or die "nnot ok: $DBI::errstrn";
  38. ($cursor->execute)
  39.     or die "nnot ok: $DBI::errstrn";
  40. while ( $row = $cursor->fetchrow_hashref ) {
  41.     $results{$row->{$varcol}} = $row->{$valcol};
  42. }
  43.     }
  44.     return %results;
  45. }
  46. 1;