Announcement

Collapse
No announcement yet.

Daten in Access DB eintragen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten in Access DB eintragen

    Hallo.

    Ich habe über Delphi (via SQL) einen DB in Acess erstellt. Das Erstellen der Tabellen und Beziehungen klappt wunderbar. Ich habe in etwa folgende Aufstellungen der Tabellen:
    Datum => DID (Primärschlüssel), Datum(Datumstyp)
    Mitarbeiter => MID(Primärschlüssel), Mitarbeiter(Text)
    Zeiten => AID(Primärschlüssel), FSMID(Fremdschlüssel), FSDID(Fremdschlüssel), Status(Text)
    Wie kann ich hier die Daten eintragen, per SQL kann ich das. Meine Frage beläuft sich auf die Frage wie die Daten automatisch für die Fremdschlüssel eingetragen werden. Für Erklärungen wäre ich Dankbar.

    Danke

  • #2
    Hallo,

    da in der Frage nicht beschrieben wurde, auf welchem Weg (BDE, DAO, ADO oder ADO Express) das Delphi-Programm auf die ACCESS-Datenbank zugreift, bleibt nur der neutrale Hinweis auf das Ereignis <b>OnNewRecord</b> als gemeinsamer Nenner für fast alle Zugriffsverfahren übrig. In der Ereignisbehandlungsmethode für OnNewRecord füllt das Programm die Fremdschlüsselspalte mit dem bekannten Wert aus

    Comment


    • #3
      Hallo Herr Kosch,

      Vielen Dank für die schnelle Antwort.

      leider habe ich vergessen zu schreiben wie ich die Daten in die Datenbank einfügen will. Ich habe die Daten als Tabseperatet Datei vorliegen. Daraus erzeuge ich einen Paradox Tabelle. Diese Daten der Tabelle will ich dann mittels ADO(SQL) (mit Überprüfung, ob die Daten schon in der Datenbank sind) einfügen. Ich werde das gewiss über eine SQL Procedure machen müssen.
      Werden die Daten in den Fremdschlüsseln dann automatisch eingetragen oder muss ich das von Hand machen?
      Dank

      Comment


      • #4
        Hallo,

        das Programm ist beim Absetzen der INSERT-Anweisung in eigener Regie dafür selbst verantwortlich, dass die Reihenfolge des Zugriffs auf die Tabellen (erst Master, dann Detail) eingehalten wird und dass auch die konkreten Fremdschlüsselwerte übergeben werden. Ab ACCESS2000 steht nur die Option zur Verfügung, dass das Programm die automatisch von der Datenbank vergebenen Primärschlüsselwerte unmittelbar nach dem Einfügen sofort abfragen kann

        Comment


        • #5
          Hallo Herr Kosch,

          wenn ich aber in eine Datenbank Daten per Insert einfügen will muss ich aber eine Tabelle in der Datenbank ansprechen. Ich bräuchte dann nur die Tabelle ansprechen die auch die Fremdschlüssel hat. Ist das richtig so? Die Datenbank würde dann die Daten in den entsprechenden Tabellen der Datenbank speichern und dort die Fremdschlüssel eintragen. Muss ich beim Eintragen aufpassen, das die Werte in den Tabellen, die den Fremdschlüssel darstellen, noch nicht vorhanden sind.

          Vielen Dank Ren

          Comment


          • #6
            Hallo,

            &gt;..dann nur die Tabelle ansprechen die auch die Fremdschlüssel hat. Ist das richtig so?

            nein, das Programm muss alle beteiligten Tabellen in eigener Regie füllen. Angenommen, ein neuer Kundendatensatz soll mit mehreren Auftragspositionen angelegt werden. In diesem Fall würde das so aussehen: <br>
            1. INSERT-Anweisung auf die Tabelle KUNDE, neuen Primärschlüsselwert merken <br>
            2. INSERT-Anweisung auf die Tabelle AUFTRAG, wobei der im 1. Schritt gemerkte Primärschlüsselwert von KUNDE als Fremdschlüssel in AUFTRAG verwendet wird.<br>
            3. Schritt 2 solange wiederholen, bis alle Aufträge eingefügt wurden.

            Nur dann, wenn in der Datenbank die Tabellen über referenzielle Integrität verbunden werden und dort die CASCADE-Option aktiviert wird, ändert die Datenbank automatisch die Fremdschlüssel. Beim Einfügen von neuen Daten ist man jedoch in jedem Fall selbst verantwortlich

            Comment

            Working...
            X