Announcement

Collapse
No announcement yet.

Intelligente Problemlösung gesucht: Abgeleitete Information in Tabelle speichern

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

  • Intelligente Problemlösung gesucht: Abgeleitete Information in Tabelle speichern

    Hallo,

    ich habe das Problem, daß ich mit Hilfe der Datenbank-Komponenten eine "abgeleitete" Information in einer Firebird-Tabelle abspeichern möchte.

    <P>
    Einleitung:
    Es wird ein Wert "A" mit Hilfe einer DBLookupComboBox in die Firebird-Tabelle gespeichert.
    DataSource verweist auf die entsprechende Firebird-Tabelle und DataField auf den Wert "A".
    Die Lookup-Table stellt die Daten aus einer Query mit dem entsprechenden Feldwert zur Verfügung.

    <P>
    Problem:
    Abhängig vom Wert "A" soll ein zweiter Wert "B" in die Firebird-Tabelle gespeichert werden. Mit welcher Komponente bewerkstellige ich das am besten ?
    Und wie baue ich das am intelligentesten ein ?

    Meine bisherige Lösung sieht vor, daß ich abhängig vom OnChange-Ereignis der DBLookupComboBox eine Query ausführen lasse, die den gefundenen Wert in ein TEdit-Feld schreibt. Anschließend würde ich nach Betätigung des Post-Buttons diesen Wert in die Datenbank schreiben lassen. Finde es aber selbst ein wenig zu umständlich, oder ?

    Grüsse,
    Carsten

  • #2
    Hat wirklich keiner einen Gedankangang parat, welche Lösung hierfür am besten wäre ?

    Um den Sachverhalt noch ein wenig klarer darzustellen und um Mißverständnisse zu vermeiden noch zwei Ergänzungen zu meinem 1. Posting:
    Mit Wert "A" in der Einleitung ist ein Wert der Spalte "A" gemeint.
    <P>
    Mit Wert "B" ist ein Wert der Spalte "B" gemeint.

    Grüsse,
    Carste

    Comment


    • #3
      Hallo!<br>
      Wie wäre es denn auf der Datenbankebene mit einem Insert/Update Trigger?<br>
      BYE BERN

      Comment


      • #4
        Hallo Bernd,

        das mit dem Isert/Update-Trigger kann ich leider nicht durchführen, da diese Information nicht in der Firebird-Datenbank vorhanden ist.

        Die fehlende Information liegt in einer Paradox-Tabelle vor.

        Gruss,
        Carste

        Comment


        • #5
          Hallo!<br>
          Ich befürchte mal dein "umständlicher" Weg entsteht einfach nur durch die Verwendung von ZWEI verschiedenen Datenbanksystemen.<br>
          Ansonsten sieht der Weg so aus, wie ich ihn auch realisieren würde.<br>
          Nur mal aus Neugierde warum ZWEI DB Systeme?<br>
          BYE BERN

          Comment


          • #6
            Hallo Bernd,

            ja da kannst Du hast recht haben, das der Schwierigkeitsgrad aus den 2 unterschiedlichen DB's her beruht.

            > Nur mal aus Neugierde warum ZWEI DB Systeme?
            Die Firebird-Datenbank ist neu und irgendwann wird sie auch mal das führende System werden.
            Aber zur Zeit gibt es auch noch in Paradox einige Tabellen, die uns zur Verfügung gestellt werden. Daher sind zur Zeit 2 Systeme notwendig.

            Aber dann kann ich es ja erst mal so realisieren, wie ich es mir gedacht habe. Danke für Deine Mithilfe.

            Tschau,
            Carste

            Comment


            • #7
              Hallo Carsten,

              warum muss denn der Wert B überhaupt in die Tabelle geschrieben werden, wenn er doch von Wert A abhängig ist?
              Oder kann sich B im Laufe der Zeit - also nachträglich für die neueren Datensätze - noch ändern?
              Falls nicht, solltest Du vielleicht lieber eine weitere Tabelle einführen.

              Gruß
              Fried Eber

              Comment


              • #8
                @ BESoftware:
                Also theoretisch müßte der Wert nicht in die Firebird-Tabelle geschrieben werden. Aber für gewisse nachträgliche Auswertungen ist diese Information sehr nützlich. Aus diesem Grunde würde ich die Information mit in der Tabelle abspeichern.

                <P>
                Der Wert B kann sich für neuere Datensätze nachträglich nicht mehr ändern.

                <P>
                > Falls nicht, solltest Du vielleicht lieber
                > eine weitere Tabelle einführen.
                Das geht nicht so leicht, da die Ursprungstabelle aus der anderen Datenbank, die die Werte A und B enthält, jeden Tag neue Datensätze enthalten könnte, die ich mit in meine Anwendung übernehmen müßte. Aber eine derartige Schnittstelle gibt es zur Zeit nicht. Und eine manuelle Pflege wäre zu arbeitsaufwendig. Außerdem würde dadurch meiner Meinung nach noch mehr Redundanz bestehen.

                <P>
                Ich möchte mich bei allen Diskussionsteilnehmern für eure Beiträge bedanken. Man kann so wirklich seine Konzepte überprüfen und andere Denkweisen mit in seine Arbeit einfliessen lassen.

                Grüsse,
                Carste

                Comment

                Working...
                X