Announcement

Collapse
No announcement yet.

Integer, Date, und String als ein einziges Ergebnis einer Abfrage ?

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

  • Integer, Date, und String als ein einziges Ergebnis einer Abfrage ?

    Hallo Leute,

    ich habe keine Ahnung wie ich folgendes Problem lösen könnte:
    Ziel1 : Der Inhalt eines Edit-Feldes oder einer DBLookUpComboBox soll das Ergebniss einer Abfrage sein. (Noch kein Problem)
    Ziel2 : Das Ergebnis ist ein Wert der sich aus
    a) dem Primary Key (Integer not Null)
    b) den beiden letzten zahlen eines Date-Feldes
    und c) den Inhaltes eines VarChar(3) Feldes
    zusammensetzt.
    Real : ID + '/' + 'Jahreszahl' + '/' + 'Sachbearbeiter' ist das Feld
    Aktenzeichen.
    Keine Ahnung wie ich ansetzen soll.

    Viele Grüße
    Gerhard Krämer

  • #2
    Soll das Feld Änderbar sein? Oder soll danach gesucht werden? oder willst Du es nur anzeigen?

    Darauf folgen dann unterschiedliche Strategien. Zudem wenn Du es dynamisch aufbaust, wird der Sachbearbeite nie geändert, oder ändert sich dann das Aktenzeichen, wohl eher nein, daher würde ich es sicherheitshalber speichern

    Comment


    • #3
      Es ist so, das Feld soll nun in einer DBLookupComboBox angezeigt werden. Sprich eine Auswahl an Aktenzeichen. Nun - der Sachbearbeiter kann sich durchaus ändern, das ist das Problem. Deshalb möchte ich dieses Feld eben zusammensetzen aus den Spalten. Außerdem werden die Daten der Akten geändert. Und würde man eine extra Spalte "Aktenzeichen" haben in der der Sachbearbeiter steht UND eine Spalte "Sachbearbeiter" bedeutet das erheblich mehr Aufwand sollte ein User auf die Idee kommen wollen den Sachbearbeiter zu ändern.

      Problem zwei. Durch Eingabe des ersten teils dieses Aktenzeichens soll die Datenbank durchsucht werden nach der passenden Akte. Aber das ist eher zweitrangig. Für dieses Problem hätte ich schon eine Lösung

      Comment


      • #4
        Hi

        Vielleicht habe ich dich nicht richtig verstanden

        Liegen alle Felder als Ergebnis EINER Abfrage(z.B. ein VIEW) vor , dann wäre die Lösung
        -wenn sie auf dem Client zusammengesetzt werden soll - diejenige, die du bereits beschrieben hast:
        <PRE>
        var
        s0,s1,s2,s3,sAZ : string;

        s0 := '/';
        with dataset do
        begin
        s1 := fieldbyName('ID').asstring;
        s2 := formatDateTime('dd',fieldbyName('Datum').value);
        s3 := fieldbyName('Sachbearbeiter').asstring;
        end;
        sAZ := s1 + s0 + s2 + s0 + s3;
        </PRE>

        Soll Aktenzeichen als fertiges Ergebnis einer Abfrage vom SERVER geliefert werden
        musst du eine stored procedure anlegen. Das Prinzip ist das gleiche, nur die
        Umwandlung (per CAST) ist abhängig von den Typen und String-Operationen, die deine Datenbank zur Verfügung stellt.
        Die Umwandlung per CAST kann einem bei der Fehlersuche bisweilen den Schweiß auf die Stirn treiben,
        deshalb wäre dieser Aufwand aus meiner Sicht nur gerechtfertigt, wenn du eine ganz erhebliche Datenmenge an
        Aktenzeichen zurückliefern willst, weil das Generieren dieser Datenmenge auf dem Server erheblich schneller
        abläuft.

        Gruß
        Bernhar

        Comment


        • #5
          Verstehe ich das richtig, daß sich das Aktenzeichen ändert. D.h. ich bekomme Post unter dem Aktenzeichen 47-02-M, weil Herr Müller dran gearbeitet hatt und ein halbes Jahr später wenn es weitergeht heißt die Akte dann 47-02-S, weil Herr Schmidt dran arbeitet.

          Ich nennen das unwiederbringliche Archivierung, aber wen der Kunde es will, viel Spaß damit

          Comment


          • #6
            Nein nein Andreas,

            Dieses Aktenzeichen steht fest so. Nur entspräche es nicht Codd wenn ich ein Attribut hätte in welchem sich Informationen befinden die in anderen Attributen zu finden sind. Außerdem entspricht es nicht meinem
            Ordnungswahn ;-)

            Greetinxx
            Ger

            Comment


            • #7
              Also Codd hin oder her, ich würde Aktenzeichen immer fest speichern, da sie sich nicht mehr ändern.

              Ansonsten kannst Du sie mit einem kalkulierten Feld zur Laufzeit in der Query Komponenten (OnCalcFields) aus den anderen dreien Zusammensetzen

              Comment

              Working...
              X