Someone kindly gave me an example of using DBI for MSAccess. It ran initially. However, I have now, as part of my attempt to install bugzilla, deinstalled perl 5.6 and perl 5.8 (which was incorrectly installed on top of perl 5.6) and reinstalled perl 5.8+, DBI and DBD-Mysql and MySQL several times and now the program below dies with the following error: "This application has failed to start because Perl56.dll was not found."
The error message makes me wonder if I need to deinstall 5.8, install 5.6 and then install 5.8 on top of 5.6 without deinstalling 5.6 first. Thanks, Siegfried #!c:/perl/bin/perl use strict; use DBI; my $database = 'D:\Dodds\Nra\db1'; $database = 'D:\Dodds\Nra\Benefits\nra_tables2k.mdb'; # Access 2000 db $database = 'c:/Program Files/Apache Group/Apache2/cgi-bin/test_components02.mdb'; # Access 2000 db $database =~ s|\\|\\\\|g; # create an escaped filename $database =~ s|/|\\\\|g; # create an escaped filename my $DSN = "driver={Microsoft Access Driver (*.mdb)};dbq=$database"; my $dbh = DBI->connect("dbi:ODBC:$DSN","","") or die "$DBI::errstr\n"; #&show_tables; #&count_rows("MoveIn", $dbh); #&show_columns("tblCalls", $dbh); #&show_columns("tblMemberCompanies", $dbh); #&show_columns("tblContacts", $dbh); #&show_columns("tblAdvertising", $dbh); #&show_columns("tblConventions", $dbh); &show_columns("BaseCaseTypes", $dbh); &print_table("BaseCaseTypes", $dbh); my $rc = $dbh->disconnect; exit; sub print_table { my ($table,$dbh) = @_; my $sql = qq~Select * from [$table] where [Booth#] = 5131~; my $sql = qq~Select * from [$table] where Date = #5/17/2000#~; my $sql = qq~Select TOP 2 * from [$table]~; #print $sql . "\n"; my $sth = $dbh->prepare($sql); $sth->execute() or die "DBI Execute error: " . $sth->errstr . "\n"; # Print columns names my ($columns, $col_types) = &_get_columns($table,$dbh); my $x; my $results; foreach (@{$columns}) { $results .= $_ . "|"; $x++; } print $results . "\n"; # Print values my $x; while (my @columns = $sth->fetchrow_array) { my $y = 0; foreach (@columns) { $x .= $columns[$y] . "|"; $y++; } $x .= "\n"; } print $x; } sub count_rows { my ($table,$dbh) = @_; my $sql = qq~Select * from [$table]~; #print $sql . "\n"; my $sth = $dbh->prepare($sql); $sth->execute() or die "DBI Execute error: " . $sth->errstr . "\n"; my $x; while (my @columns = $sth->fetchrow_array) { $x++; } print $table . " = " . $x . "\n"; } sub show_columns { my ($table,$dbh) = @_; my ($columns, $col_types) = &_get_columns($table,$dbh); my $x; my $results; foreach (@{$columns}) { $results .= $_ . ":\t" . $col_types->[$x] . "\n"; $x++; } print $results; } # show_columns sub _get_columns { my ($table,$dbh) = @_; my $sql = qq~Select * from [$table]~; my $sth = $dbh->prepare($sql); $sth->execute() or die "DBI Execute error: " . $sth->errstr . "\n"; my $x; my @columns; my @col_types; foreach (@{$sth->{NAME}}) { # if ($_ =~ /^s_/) {$x++; next;}; # skip system columns that begin with "s_" $columns[$x] = $sth->{NAME}->[$x]; # Get column type my @type_info = $dbh->type_info($sth->{TYPE}->[$x]); my $col_type; my $y; foreach (@type_info) { $col_type .= $_->{TYPE_NAME}; $y++; if ($y > 0) { $col_type .= ' ' }; } chomp $col_type; $col_types[$x] = $col_type; $x++; } return ([EMAIL PROTECTED], [EMAIL PROTECTED]); } # _get_columns sub show_tables { # Displays list of tables my $display_sys_tables = 0; my @tables = $dbh->tables; my $x; my $tn; foreach $tn (@tables) { if (($display_sys_tables) && ($tn =~ /^MSys/)) { $x .= $tn . "\n"; } elsif (!($tn =~ /^MSys/)) { $x .= $tn . "\n"; } } print $x; } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>