use DBI; $debug = 1; $| = 1; my $kaiser_file = 'd:\perl\scripts\kevin\excel_data\query.xls'; my $amr_file = 'd:\perl\scripts\kevin\excel_data\data.xls'; $amr_db = DBI->connect("DBI:Excel:file=$amr_file") or die "Cannot connect: " . $DBI::errstr; print "Connected to: $amr_file\n"; foreach $table ($amr_db->tables()) { print "Table: $table "; $sth = $amr_db->prepare("SELECT * from $table LIMIT 2"); $sth->execute(); if ($sth->{NUM_OF_FIELDS} <= 1) { print "has $sth->{NUM_OF_FIELDS} fields. Skipping.\n"; next; } print "has $sth->{NUM_OF_FIELDS} fields. Using this table.\n"; $amr_table = $table; for ($i = 1 ; $i <= $sth->{NUM_OF_FIELDS} ; $i++) { $col_name = $sth->{NAME}->[$i-1]; printf(" Col %2d, Name = \'%s\'\n",$i,$col_name); $amr_col_num{$col_name} = $i; $amr_col_name{$i} = $col_name; } $sth->finish(); } $sql = "SELECT 'Tracking Nbr' FROM $amr_table"; print "$sql\n"; $amr_sth = $amr_db->prepare($sql); $amr_sth->execute(); $row_count = 1; while ($hashref = $amr_sth->fetchrow_hashref()) { print "Row: $row_count\n"; $row_count++; foreach $key (keys (%$hashref)) { print " $key => $$hashref{$key}\n"; } } $sth->finish(); if ($kaiser_db) { print "Disconnecting from kaiser.\n"; $kaiser_db->disconnect(); }