Thread Zugriff auf MSAccess via CLI queries oder anderst? (8 answers)
Opened by fraggs at 2007-07-12 17:23

fraggs
 2007-07-12 17:23
#35562 #35562
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
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

Code: (dl )
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
Quote
Illegal 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

View full thread Zugriff auf MSAccess via CLI queries oder anderst?