Unregelmäßigkeiten in Zusammenhang TDBNavigator/ TDBMemo



  • Beim Eingeben und Bearbeiten von Daten in ein TDBMemo staune ich über große Unregelmäßigkeiten.
    Anbei das Szenario und nachfolgend die diversen Anwendungsfälle:

    Meine Tabelle verfügt über drei Textfelder und ein Memofeld.
    Zum Anzeigen und Bearbeiten der Daten benutze ich die üblichen Komponenten TTable, TDataSourc, TDBNavigator, TDBEdit, TDBMemo.

    Fall 1:
    Klick auf Datensatz hinzufügen (+) und Eingabe von Werten in drei Textfelder
    Aktualisierung per Klick auf <, >, + oder bestätigen (Haken-Symbol): OKAY

    Fall 2:
    Klick auf Datensatz hinzufügen (+) und Eingabe von Werten in drei Textfelder und Memo-Wert
    Aktualisierung bei Klick auf <, >, + oder Bestätigung (Haken-Symbol): FEHLER
    => Fehlermeldung: Für diese Operation ist eine Nicht-Blob-Spalte erforderlich

    Fall 3:
    Ändern des Wertes in Feld Memo
    Aktualisierung bei Klick auf <, >, + oder Bestätigung (Haken-Symbol): OKAY

    Fall 4:
    Eingabe eines Wertes in Feld Memo (wenn DS bereits angelegt war)
    Aktualisierung bei Klick auf <, >, + oder Bestätigung (Haken-Symbol):
    - Variante A: Wenn DS in aktueller Sitzung angelegt wurde (aktueller Formularaufbau)
    => Fehler: Datensatz kann nicht gesperrt werden, da der Datensatz von einen anderen Benutzer geändert wurde.
    - Variante B: Wenn DS in früherer Sitzung angelegt wurde.
    => OKAY
    - Variante C: Wenn DS in aktueller Sitzung angelegt wurde und 'zusätzlich' die Methode Refresh()auf die Tabelle ausgeführt wurde:
    => OKAY

    Wäre großartitg, wenn jemand ne Erklärung oder besser noch ne Lösung für dieses Phänomen wüsste.

    Gruß
    Leo



  • Leo,
    Blob-Felder verhalten sich unterschiedlich von Datenbank zu Datenbank - welche verwendest Du denn?
    Wenn ich raten müßte, würde ich auf ein Cache-Problem tippen. Vielleicht hilft es, CachedUpdates auf false zusetzen ...



  • dschensky schrieb:

    Leo,
    Blob-Felder verhalten sich unterschiedlich von Datenbank zu Datenbank - welche verwendest Du denn?
    Wenn ich raten müßte, würde ich auf ein Cache-Problem tippen. Vielleicht hilft es, CachedUpdates auf false zusetzen ...

    Danke für den Tipp, aber leider ändert sich nichts an dem Verhalten egal ob ich CachedUpdates auf true oder false setze.
    Ich benutze übrigens eine Access-2000 DB.

    Sollte ich vielleicht die ganze Geschichte ohne BDE-Komponenten machen (ohne TTable, TDataSource) und stattdessen mit TQuery per SQL arbeiten?

    Gruß
    Leo



  • Leo,

    Leo Freitag schrieb:

    Sollte ich vielleicht die ganze Geschichte ohne BDE-Komponenten machen (ohne TTable, TDataSource) und stattdessen mit TQuery per SQL arbeiten?

    das läuft dann trotzdem über die BDE (und ODBC). Vielleicht bringt die Verwendung von ADO etwas. Soweit ich weiß, behandelt MS seine ODBC-Treiber etwas stiefmütterlich ...


Anmelden zum Antworten