Schrift
[thread]3350[/thread]

zugriff mit perl auf access



<< >> 6 Einträge, 1 Seite
Andreas
 2003-10-02 14:03
#34949 #34949
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
Hallo an alle,
ich möchte mittels DBI::ODBC auf eine *.mdb zugreifen.
Leider hab ich keinen Schimmer von ODBC und weiss nicht so recht was ich dafür alles benötige.

Hab jetzt mal einfach eine test.mdb mit verschiedenen Tabellen angelegt und unter C:\perl\access gelect auf die möchte ich jetzt zugreifen, habs so versucht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
use DBI;


my $dsn = "DBI:ODBC:C:\\perl\\access\\db2.mdb";
my $dbh = DBI->connect($dsn, "", "");

$sth=$dbh->prepare("SELECT * FROM BAUTEIL");
$sth->execute;


while (my @ausgabe = $sth->fetchrow_array)
{
print $ausgabe[0]."\t".$ausgabe[1]."\t".$ausgabe[2]."\t".$ausgabe[3]."\n";

}

Ihr seht schon ich hab nicht viel Erfahrung mit ODBC.
Kann mir jemand dabei helfen?

Danke schon mal

Andreas
havi
 2003-10-02 14:09
#34950 #34950
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Hi!

Versuchs mal so:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my $mdb_file = "D:\\db1.mdb";

my $connection_string = q{;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=PfadZuDeinerSystemMdw};

my $cn = DBI->connect("dbi:ADO:Data Source=".$mdb_file.$connection_string, "");

my $alles = $cn->selectall_arrayref("SELECT * FROM Tabelle1");

foreach my $row ( @{$alles} ) {
print join (";", @{$row}), "\n";
}

1;


Gruss
Andreas
 2003-10-02 14:20
#34951 #34951
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
hi havi,
danke erst mal für die schnelle antwort.
was bedeutet "database=PfadZuDeinerSystemMdw};"
havi
 2003-10-02 14:36
#34952 #34952
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Da trägst du den Pfad ein wo deine system.mdw Datei steht!

Gruss
Andreas
 2003-10-02 15:21
#34953 #34953
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
hi havi,

habe jetzt folgendes versucht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my $mdb_file = "C:\\perl\\access\\db1.mdb";

my $connection_string = q{;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=C:\\WINNT\\system\\system.mdw};

my $cn = DBI->connect("dbi:ADO:Data Source=".$mdb_file.$connection_string, "");

my $alles = $cn->selectall_arrayref("SELECT * FROM Tabelle1");

foreach my $row ( @{$alles} ) {
print join (";", @{$row}), "\n";
}

1;

jetzt kommt aber leider ein Fehler:

install_driver(ADO) failed: Can't locate DBD/ADO.pm in @INC (@INC contains: D:/Perl/lib D:/Perl/site/lib .) at (eval 1) line 3.
Perhaps the DBD::ADO perl module hasn't been fully installed,
or perhaps the capitalisation of 'ADO' isn't right.
Available drivers: CSV, ExampleP, File, ODBC, Pg, Proxy.

ich kann das Modul DBD/ADO.pm bei CPAN aber nicht finden

Was kann ich da jetzt machen?
havi
 2003-10-02 15:39
#34954 #34954
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Hi!

Mach folgendes:
Code: (dl )
1
2
3
4
cmd.exe oeffnen
ppm
install DBD-ADO
exit


Gruss
<< >> 6 Einträge, 1 Seite



View all threads created 2003-10-02 14:03.