Problem beim Update einer Datenbank



  • Hallo!
    Ich versuche grade ein Programm mit Datenbankanbindung zu schreiben, was aber daran scheitert, dass ich konsequent daran scheitere, die Datenbank in irgendeiner Weise zu ändern.
    Ich habe eine Paradox-Datenbank erstellt, ein TTable-, TDataSource- und ein TDBGrid-Objekt im Formular. Die Daten werden korrekt angezeigt, ich kann per Delete() Datensätze im TDBGrid löschen, aber wenn ich versuche, mit Post() das ganze zu speichern sagt er mir "Datenmenge weder im Editier- noch im Einfügemodus".
    Wäre nett, wenn mir jemand den entscheidenden Hinweis geben könnte!
    Ach ja, zum Updaten der DB sollte "CanModify" true sein, wenn ich richtig geraten habe... Nur: wie kann ich es ändern???
    Viel Dank an alle, die dies gelesen haben!



  • Hi,

    bevor ich umgebracht werde, weil ich auf das Tutorial in der FAQ hinweise zitiere ich mal die Hilfedatei:

    Entwicklerhandbuch: Datenbankanwendungen entwickeln
    Daten ändern

    Themengruppen Siehe auch

    --------------------------------------------------------
    Mit den folgenden Methoden für Datenmengen lassen sich Daten einfügen, aktualisieren und löschen, wenn die Nur-Lese-Eigenschaft CanModify auf true gesetzt ist. Für CanModify gilt normalerweise true, es sei denn, die Datenmenge ist unidirektional, die zugrundeliegende Datenbank stellt keine Lese- und Schreibberechtigungen zur Verfügung oder ein anderer Umstand verhindert dies (beispielsweise wenn die Eigenschaft ReadOnly für einige Datenmengen definiert ist oder die Eigenschaft RequestLive für TQuery-Komponenten).

    Methode Beschreibung
    Edit Die Datenmenge wird in den Status dsEdit versetzt, wenn sie sich noch nicht im Status dsEdit bzw. dsInsert befunden hat.
    Append Alle noch nicht ausgeführten Änderungen an Daten werden in die Datenbank zurückgeschrieben, und der aktuelle Datensatz wird an das Ende der Datenmenge gesetzt. Die Datenmenge wird in den Status dsInsert versetzt.
    Insert Alle noch nicht ausgeführten Änderungen an Daten werden in die Datenbank zurückgeschrieben, und die Datenmenge wird in den Status dsInsert versetzt.
    Post Die Anwendung versucht, den neuen oder geänderten Datensatz in die Datenbank zurückzuschreiben. Wenn dies gelingt, wird die Datenmenge in den Status dsBrowse versetzt, andernfalls bleibt der aktuelle Status unverändert.
    Cancel Die aktuelle Operation wird abgebrochen, und die Datenmenge wird in den Status dsBrowse versetzt.
    Delete Der aktuelle Datensatz wird gelöscht, und die Datenmenge wird in den Status dsBrowse versetzt.
    Die folgenden Themen beschreiben diese Methoden ausführlich:

    Datensätze bearbeiten
    Datensätze hinzufügen
    Datensätze löschen
    Geänderte Daten in die Datenbank zurückschreiben
    Änderungen rückgängig machen
    Ganze Datensätze in einem Schritt ändern

    Du must also vorher die Datenmenge mit Edit() in den Editier- Moduls versetzen.



  • Wunderbar!
    Da weiß man am Ende eines Tages was man getan hat. 🙂
    Das Tutorial hatte ich auch schon gelesen, aber der Geistesblitz blieb dabei aus.
    Wie dem auch sei... Vielen Dank!


Log in to reply