Felix Riesterer: jetzt die ganze Miete[2]

Beitrag lesen

Momentan habe ich keine DB mit Gruppenrichtlinien (eine *.mdw-Datei) da

Aber jetzt habe ich eine und auch getestet, wie es damit funktioniert:

--- odbc.ini ---
[MeinProjekt]
Description = Meine Projekt-DB mit mehreren DB-Benutzern
Driver      = MdbTools
Database    = /home/me-the-user/path/mein-projekt.mdb
SystemDB    = /home/me-the-user/path/meine-gruppendatei.mdw
Servername  = localhost
Username    = db-benutzer
Password    = db-passwort
--- /odbc.ini ---

In PHP erhält man nun so die Namen aller in der DB befindlichen Stammtabellen (ohne Views, Reporte und Schnickschnack):

if ($connection = odbc_connect(  
    "MeinProjekt", // DB in /etc/odbc.ini definiert  
    "db-benutzer", // User  
    "db-passwort" // PW  
)) {  
    if ($res = odbc_exec(  
        $connection,  
        "SELECT Name FROM MSysObjects WHERE type=1 AND flags=0"  
    )) {  
        echo "<p>Die Datenbank hat folgende Tabellen:</p>\r\n<ul>\r\n";  
  
        while ($test = odbc_fetch_array($res)) {  
            echo sprintf(  
                "\t<li>%s</li>\r\n",  
                htmlspecialchars(utf8_decode(  
                    $test['Name'] // k.A. warum hier utf8_decode nötig ist  
                ))  
            );  
        }  
  
        echo "</ul>\r\n";  
    }  
  
    odbc_close($connection);  
    echo "<p>Test erfolgreich!</p>";  
  
} else {  
    echo "<p>Test nicht erfolgreich!</p>";  
}

Mögen meine Funde jemandem nützen, der auch so wie ich einen ganzen Tag lang nach einer Linux-only Lösung für Access-Datenbanken gesucht hat.

Es sei der Vollständigkeit halber erwähnt, dass auf diese Art und Weise in die Access-Datei _nicht_ geschrieben werden kann! Die Verbindung über MDB-Tools ist read-only.

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)