Announcement

Collapse
No announcement yet.

Neuer Datensatz mit Navigator, autm. Index erhöhen?

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

  • Neuer Datensatz mit Navigator, autm. Index erhöhen?

    Hallo.
    Ich würde gerne, wenn ich mit dem Navigator einen neuen Datensatz in meinem DataGrid anlege, automatisch den Feldindex erhöhen. Hat da jemand eine Idee oder sogar einen Source?
    Gruß wernerAz

  • #2
    Was könnte der Feldindex sein? Ggf. hängt das Ob und Wie von deiner DB ab
    Christian

    Comment


    • #3
      Hallo Christian, es geht um eine Paradox-DB, wie du vielleicht schon vermutet hast. Ich habe dort auch schon das Feld als AutoInc behandelt und es funktioniert soweit. Allerdings wird der Index auch erhöht, wenn ich einen Datensatz lösche und somit entstehen Index-Löscher. Mir wäre da lieber soetwas wie, wenn ich auf dem Navigator hinzufügen drücke, ich eine Routine aufrufen kann, die mir den aktuellen Index ausliest und den Index dann erhöht. Somit hätte ich eine bessere Kontrolle darüber. Oder nicht?
      Werner

      Comment


      • #4
        Lieber ->"Oder nicht"

        Es kann dir wurscht sein, ob dort Löcher entstehen, wenn ein Datensatz gelöscht wird. Es ist Sache der DB den Index zu verwalten und für jeden neuen Datensatz einen bereit zu stellen.

        Der Index sollte ein reines Datenbankfeld sein und nie zu Zwecken der Geschäftslogik (also zum Zählen der Datensätze, als fortlaufende Nummer oder als anderes Kirterium) genutzt werden.

        Wenn du es nicht lassen kannst, musst du halt den Index komplett manuell verwalten.

        Dann stelle dir auch die Frage was passieren soll, wenn ein Datensatz gelöscht wird. Sollen alle Datensätze verschoben werden? Mit Anpassungen aller IDs? Was ist wenn mehrere gelöscht werden und ein großes Loch entsteht, was nicht sofort gefüllt werden kann?
        Christian

        Comment


        • #5
          Na gut. Dennoch möchte ich wissen, wie viele Datensätze meine Datenbank enthält. Da habe ich mir gedacht:
          Form1->Caption=KategorieTable->RecordCount; //Table in Datenmodul meineDB
          Die Table im Datenmodul wird vom Hauptmodul nicht erkannt, obwohl ich den Header eingebunden habe. Woran liegt das?
          Mit Jave könnte ich z.B mit:
          Form1->Caption=meineDB.KategorieTable->RecordCount; //Table in Datenmodul FilmeDB
          darauf zugreifen.
          Gruß Werner

          Comment


          • #6
            Ups. Sorry...
            Form1->Caption=DataModule1->KategorieTable->RecordCount;
            funktioniert.
            Habe "meineDB.cpp" mit dem Namen des Datenmoduls verwechselt.
            Gruß Werner

            Comment

            Working...
            X