wollte mal wissen ob dies geht sich einfach ueber das cli sich in die access datenbank einzuloggen und dann tabellen zu exportieren und durchsuchen zu koennen.
ich will zurzeit ein script schreiben um dies zutun hab bis jetzt noch keine wirkliche erfahrung mit access gehabt nur mit mysql und xml auswertungen.
war schon in der forum suche und hab ein paar wichtige infos gefunden zu welchen modulen ich brauche etc und ein bisschen beispiel code allerdings gelung es mir bis jetzt noch nicht mich in die datenbank richtig einzuloggen.
hier ist der jetzige code der auch aus einem sehr alten post im forum stammt zum einloggen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
# 12/07/07 Stephan Becker
# test print fuer access datenbank
use strict;
use warnings;
use DBI;
my $mdb_file = "C:\090.1000.ATX_ATEX-RSM\Endmontage\Endmontage ATEX-RSM.mdb";
print " \n ";
my $connection_string = q{;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=C:\WINNT\system\system.mdw};
print "--- $connection_string ---";
print " \n ";
my $cn = DBI->connect("dbi:ADO:Data Source=".$mdb_file.$connection_string, "");
print "--- $cn ---";
print " \n ";
my $alles = $cn->selectall_arrayref("");
foreach my $row ( @{$alles} )
{
print join (";", @{$row}), "\n";
}
und hier ist der error den ich leider bekomme
QuoteIllegal octal digit '9' ignored at dbatest1.pl line 9.
DBI connect('Data Source=C: 90.1000.ATX_ATEX-RSMndmontagendmontage ATEX-RSM.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=C:\WINNT\system\system.mdw','',...) failed: Can't Open Connec
tion 'Data Source=C: 90.1000.ATX_ATEX-RSMndmontagendmontage ATEX-RSM.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:System database=C:\WINNT\system\system.mdw'
Package : DBD::ADO::dr
Filename : C:/Perl/site/lib/DBD/ADO.pm
Line : 153
Last error : -2147467259
OLE exception from "Microsoft JET Database Engine":
Das Microsoft Jet-Datenbankmodul kann die Datei 'C:\Perl Code\Access
Datenbank Abruf' nicht ÷ffnen. Sie ist bereits von einem anderen Benutzer
exklusiv ge÷ffnet, oder Sie ben÷tigen eine Berechtigung, um die Daten lesen
zu k÷nnen.
Win32::OLE(0.1707) error 0x80004005: "Unbekannter Fehler"
in METHOD/PROPERTYGET "Open" at dbatest1.pl line 13
Can't call method "selectall_arrayref" on an undefined value at dbatest1.pl line 15.
ich habe schonmal im inet nachgeschaut in sachen "Sie ist bereits von einem anderen Benutzer
exklusiv ge÷ffnet, oder Sie" ... die berechtigungen braucht man nicht weil es dort keine gibt. im inet wird gesagt das dies irgendwas mit dem dsn eintrag im odbc zutun haben koennte. allerdings bin ich da etwas confus da dies alles etwas neu fuer mich ist.
also mit der methode in line 15 mit dem selectall_arrayref will er ja das ganze array auswaehlen und dann spaeter in dem print dies ausgeben was darin steht. allerdings macht ers nicht.
Und ich denke das script scheitert an einer ganz bestimmten stelle, genau da wo der connection string definiert wird und wo hinten die verzeichniss angabe ist. denn bei mir gibt es keine system.mdw datei und weis auch nicht woher die kommen soll.
bedanke mich !\n\n
<!--EDIT|fraggs|1184247474-->
mmm twix