Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] mehrere mdb mit odbc_connect

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] mehrere mdb mit odbc_connect

    Hallo zusammen,
    ich habe ein Frage, die ich leider nichts in google finde.

    Kann man drei Access mdb Dateinen mit odbc_connect anspechen.
    Ich habe eine artikel.mdb, bestellung.mdb und eine lieferanten.mdb.
    Ich möchte alle drei DB öffenen und tabellen aus diesen DB in einer SQL Abfrage zusammenbasteln. Den odbc_connect auf eine DB habe ich hinbekommen, und kann auch eine DB auslesen. Hat da jemand Erfahrung, bzw. geht das Überhaupt? Mein Problem ist der Zugriff auf mehrere MDB mit PHP. Leider ist das mit den mdb so und lässt sich auch nicht ändern.

    PHP-Code:
    <?php

    $cfg_dsn 
    "DRIVER=Microsoft Access Driver (*.mdb);
    DBQ=L:/Name/db/artikel.mdb; 
    UserCommitSync=Yes; 
    Threads=3; 
    SafeTransactions=0; 
    PageTimeout=5; 
    MaxScanRows=8; 
    MaxBufferSize=2048; 
    DriverId=281; 
    DefaultDir=C:/Programme/Gemeinsame Dateien/ODBC/Data Sources"
    ;

    $cfg_dsn_login "";
    $cfg_dsn_mdp "";

    if (!
    $connect = @odbc_connect($cfg_dsn$cfg_dsn_login$cfg_dsn_mdp)) {
        echo 
    "Fehler";
        exit;
    }

    $result odbc_exec($connect"SELECT * FROM tabartikel");

    while (
    $row odbc_fetch_array($result)) {
        
    $i++;
        echo(
    'var' $i '=' $row["bezeichnung"]);
    }
    ?>


  • #2
    Wo ist denn dein Code um mehrere DB's gleichzeitig zu öffnen? Welches Problem/Fehlermeldung entsteht bei dem Versuch?
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Leider weis ich nicht wie ich das machen sol, ich finde da keinen Ansetzungspunkt bzw. das dies überhaupt geht oder nicht geht.

      Kommentar


      • #4
        Zitat von JNPANZER Beitrag anzeigen
        Leider weis ich nicht wie ich das machen sol, ich finde da keinen Ansetzungspunkt bzw. das dies überhaupt geht oder nicht geht.
        Das heisst, du hast weder etwas selber ausprobiert, noch im Internet nach Ansätzen gesucht?

        Vor allem das Ausprobieren - wo ist das konkrete Problem, selber mal etwas auszuprobieren und mit Resultaten zu kommen?
        (Ich fürchte fast, jetzt kommt wieder die "Bin Anfänger" Jokerkarte...)
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          mmmh.. was soll ich sagen, ich habe in letzter Zeit immer mit Mysql garbeitet, da bin ich auch ein Anfänger, aber es klappt. Ich möchte nun für unseren Verkauf eine Abfrage basteln, da ich Access für ein Müll halte (aber wir haben es nun mal bei uns laufen), habe ich PHP gewählt. Also um deine Frage zu beantworten ich bin in odbc leider ein blutiger anfänger, der seit 2 Tagen googelt und sich das beibringen möchte und leider im odbc PHP Handbuch nicht weiterkommt. Meine Frage war einfach und ich möchte wissen ob man zwei mdb so ansprechen kann, wenn man dies mit Ja oder nein beantwortet oder den Weg wie du es machst ist Verkehrt, würde mir hlefen. Ich kann beide MDB aufmnachen aber ich kann sie nicht wie mit mysqli mit left join verbinden. Ich poste keinen Code der hinten und vorne unwissen ist. Meine erste Abfrage auf die ODBC läuft und die Artikelbezeichnung bekomme ich angezeigt. Hast du schon mal so was gemacht?
          Was bis jetzt läuft ist das.
          Ich hebe beide MDB offen.

          PHP-Code:
          <?php

          $cfg_dsn 
          "DRIVER=Microsoft Access Driver (*.mdb);
          DBQ=L:/name/db/artikel.mdb;
          UserCommitSync=Yes; 
          Threads=3; 
          SafeTransactions=0; 
          PageTimeout=5; 
          MaxScanRows=8; 
          MaxBufferSize=2048; 
          DriverId=281; 
          DefaultDir=C:/Programme/Gemeinsame Dateien/ODBC/Data Sources"
          ;

          $cfg_dsn1 "DRIVER=Microsoft Access Driver (*.mdb);
          DBQ=L:/name/db/bestellung.mdb;
          UserCommitSync=Yes; 
          Threads=3; 
          SafeTransactions=0; 
          PageTimeout=5; 
          MaxScanRows=8; 
          MaxBufferSize=2048; 
          DriverId=281; 
          DefaultDir=C:/Programme/Gemeinsame Dateien/ODBC/Data Sources"
          ;

          $cfg_dsn_login "";
          $cfg_dsn_mdp "";

          if (!
          $connect = @odbc_connect($cfg_dsn$cfg_dsn_login$cfg_dsn_mdp)) {
              echo 
          "Fehler Artikle.mdb";
              exit;
          }
          if (!
          $connect1 = @odbc_connect($cfg_dsn1$cfg_dsn_login$cfg_dsn_mdp)) {
              echo 
          "Fehler bestellung.mdb";
              exit;
          }
          Da bin ich gerade dran und versuche die beiden DB in eine Query zu bringen.,.. und weis nicht wie.
          PHP-Code:



          $result 
          odbc_exec($connect"SELECT * FROM tabartikel");

          while (
          $row odbc_fetch_array($result)) {
              
          $i++;
              echo(
          'var' $i '=' $row["bezeichnung"]);
          }
          ?> 

          Kommentar


          • #6
            Was bis jetzt läuft ist das, ich hebe beide DB offen
            Na also, das ist doch mal ne Aussage... heisst: du hast bereits 2 Verbindungen offen. Es geht also.

            Ich möchte alle drei DB öffenen und tabellen aus diesen DB in einer SQL Abfrage zusammenbasteln.
            Du kannst nicht drei verschiedene Verbindungen mit einer SQL Anweisung benutzen (Das SQL Statement wird immer nur an eine Verbindung geschickt).

            Das einzige was du machen kannst wäre, Daten aus DB 1 abzufragen und damit ein neues SQL Query erstellen, das du an DB 2 schickst.

            Ist ein Problem von Access - das ist eine Dateibasierte Datenbank, da gibt es immer nur eine Datenbank pro Datei.

            Würdest du einen richtigen SQL Server verwenden, könntest du innerhalb des Servers viele verschiedene Datenbanken haben - damit könntest du dann auch Queries Datenbankübergreifend schreiben.

            Guckst du mal hier... das basiert zwar auf VBA, aber einen Versuch ist es wert.
            http://support.microsoft.com/kb/113701/DE-DE/
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Vom Grundsatz würde ich nicht die ODBC Funktionen von PHP nehmen, sondern dies gleich mit PDO machen. Löst zwar nicht dein Problem mit mehreren DB, du hast aber schon eine einheitliche Schnittstelle für ODBC, MySQL und weitere Datenbanken
              PHP-Klassen auf github

              Kommentar


              • #8
                Danke lstegelitz ich schau mir mal das an, das hat mir schon geholfen. Glaub mir, ich möchte auch eine Vernünftige DB aber sag mal das den Entwickler des Programm der ist gefühlte 100 Jahre alt .. es ist nicht einfach, aber die Zeit spielt für mich

                Danke jspit für den Tppp mit PDO, schau ich mir mal an.

                Kommentar


                • #9
                  Ein Gedanke noch:
                  Eventuell lohnt es sich, die 3 Access-Tabellen in eine MySQL-DB zu schaufeln (temporär) und dann mit MySQL weiterzuarbeiten.
                  PHP-Klassen auf github

                  Kommentar

                  Lädt...
                  X