Announcement

Collapse
No announcement yet.

Problem mit TTable nach Strukturänderung

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

  • Problem mit TTable nach Strukturänderung

    Hallo,

    ich habe folgendes Problem mit einer TTAble in Delphi5.

    TTable wird geöffnet. Während die TTable geöffnet ist, wird über eine TQuery die Struktur der Tabelle geändert, bzw die Tabelle neu erzeugt.

    Wenn ich bei der Strukturänderung z.B. das Feld ID in NUMMER umbenenne, bekomme ich bei

    Table2.Close;
    Table2.Open;

    die Fehlermeldung Column unknown 'ID'. Die TTable hat also die Änderung nicht mitbekommen.

    Ich habe schon probiert den Tablename neu zusetzen, die Fielddefs zu löschen (Fielddefs.Clear) und die Fielddefs zu aktualisieren (Fielddefs.Update). Hat alles nichts geholfen.

    Hat jemand eine Idee?

    Gruß Andreas

  • #2
    Hallo!
    Arbeitest Du mit persistenten Feldern?
    Das führt dann wahrscheinlich zu obigen Problemen...
    BYE BERN

    Comment


    • #3
      Hallo Bernd,

      nein an der Stelle habe ich keine persistenten Felder. Fällt Dir vielleicht noch was anderes dazu ein?

      Danke und Gruß
      Andrea

      Comment


      • #4
        Hallo!
        Vielleicht eine verbundene komponente Grid DBEdit etc... ?
        BYE BERN

        Comment


        • #5
          Hallo Bernd,

          danke für den Hinweis. Es hängt tatsächlich ein DBGrid an der TTable.

          Jetzt habe ich mal kurzzeitig Dataset der Datasource auf nil und anschließend wieder auf die TTable gesetzt.
          Im zweiten Versuch habe ich die Datasource des Grids auf nil und wieder neu gesetzt.

          Beides hat nichts gebracht.

          GRuß Andrea

          Comment


          • #6
            Hallo!
            Sorry ich habe mal ein Minimalbeispiel mit ADO und SQL Server zusammengebastelt. Jede Änderung der Tabelle wird mir sofort angezegt, wenn ich für die Tabelle mal kurz
            Adotable.active := false;
            application.processmessages;
            Adotable.active := true;
            ausführe.

            Das DBGrid zeigt mir dann sofort die neuen Felder an...

            BYE BERN

            Comment


            • #7
              Bei Fehlermeldungen muss man immer genau aufpassen, wo die wirklich herkommen. Schaue mal, ob die Tabelle oder dessen Dataset irgendwelche Events auslösen, bei der dann Komponenten angesprochen werden, die die Änderung nicht mitbekommen haben. Könnte auch bei einem Master/Detail passieren, wo die Detailtabelle über "ID" referenziert, die plötzlich "Nummer" heisst...<br>
              bye,
              Helmu

              Comment


              • #8
                Moin :-)
                Sind im angehängten DBGRid zufälligerweise im Objektinspektor die Spalten (DBGridColumns) 'erzeugt'? Dann dürfte der Fehler klar sein, weil der FieldName ja noch auf ID steht und somit den neuen Feldnamen nicht mitbekommt

                Comment

                Working...
                X