Announcement

Collapse
No announcement yet.

Merkmal nicht verfügbar?

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

  • Merkmal nicht verfügbar?

    Hallo,
    um in meiner Datenbankanwendung verschiedene Eingaben wieder rückgängig machen zu können, habe ich in TTable die Eigenschaft CachedUpdates auf true gesetzt. Aber dadurch kommt es beim ausführen des Programms zu der Fehlermeldung: .....Exception der Klasse EDBEngineError aufgetreten. Meldung:“Merkmal nicht verfügbar“.
    Nun habe ich keine Ahnung was damit gemeint sein könnte. (Welches Merkmal???)
    Für jede Hilfe wäre ich sehr dankbar!
    Gruss Helmut

  • #2
    Hallo,

    wird TUpdateSQL oder OnUpdateRecord verwendet, um Cached Updates zu nutzen

    Comment


    • #3
      Hallo Andreas,

      zunächst mal vielen Dank für die schnelle Antwort.

      Die Fehlermeldung tritt schon auf, ohne dass ich Cached Updates irgendwo nutze. Ich wollte mit RevertRecord die letzten Eingaben rückgängig machen. Allerdings kommt die Meldung egal ob RevertRecord programmiert ist oder nicht. (Gleich beim starten des Programms, ohne irgendeine Eingabe oder so).

      Mit freundlichen Grüßen
      Helmut Bor

      Comment


      • #4
        Hallo,

        ich kann das Problem nicht nachvollziehen. Das folgende Beispielprojekt arbeitet so wie erwartet: <br>
        a) Datensatz wird über TDBNavigator aus der Tabelle gelöscht <br>
        b) Button1 stellt den gelöschten Datensatz wieder her <br>
        Die Implementierung stammt aus der Delphi-Hilfe zu <b>RevertRecord</b>

        PAS-Datei:
        <pre>
        unit Unit1;

        interface

        uses
        Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
        StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables;

        type
        TForm1 = class(TForm)
        Table1: TTable;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        DBNavigator1: TDBNavigator;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        private
        { Private-Deklarationen }
        public
        { Public-Deklarationen }
        end;

        var
        Form1: TForm1;

        implementation

        {$R *.DFM}

        procedure TForm1.Button1Click(Sender: TObject);
        begin
        with Table1 do
        begin
        UpdateRecordTypes := [rtDeleted]; {nur gelöschte Datensätze anzeigen}
        try
        First; {zum Anfang der Datenmenge gehen}
        while not EOF do
        begin
        RevertRecord; {aktuellen Datensatz wiederherstellen}
        Next; {zum nächsten Datensatz gehen}
        end;
        finally
        UpdateRecordTypes := [rtModified, rtInserted, rtUnmodified];
        end;
        end;
        end;

        end.
        </pre>
        DFM-Datei:
        <pre>
        object Form1: TForm1
        Left = 192
        Top = 107
        Width = 696
        Height = 480
        Caption = 'Form1'
        Color = clBtnFace
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        OldCreateOrder = False
        PixelsPerInch = 96
        TextHeight = 13
        object DBGrid1: TDBGrid
        Left = 24
        Top = 56
        Width = 625
        Height = 161
        DataSource = DataSource1
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
        end
        object DBNavigator1: TDBNavigator
        Left = 112
        Top = 24
        Width = 240
        Height = 25
        DataSource = DataSource1
        TabOrder = 1
        end
        object Button1: TButton
        Left = 264
        Top = 240
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 2
        OnClick = Button1Click
        end
        object Table1: TTable
        Active = True
        CachedUpdates = True
        DatabaseName = 'DBDEMOS'
        TableName = 'country.db'
        Left = 24
        Top = 16
        end
        object DataSource1: TDataSource
        DataSet = Table1
        Left = 56
        Top = 16
        end
        end
        </pre&gt

        Comment


        • #5
          Hallo Andreas,

          danke für das Beispiel, aber es löst mein Problem leider nicht. Wie in dem Beispiel habe auch ich in Table die Eigenschaft CacherUpdates auf true gesetzt, und genau dann kommt es zu dem Fehler. Vielleicht kann mir jemand sagen, was die Meldung „Merkmal nicht verfügbar“ bedeutet.
          Also, nochmals vielen Dank für die Mühe.

          Mit freundlichen Grüßen

          Helmut Bor

          Comment


          • #6
            Hallo,

            da bei mir das Ganze funktioniert (Delphi 5.01, BDE 5.11, Zugriff auf die dBASE-Tabelle über den BDE-Alias DBDEMOS) stellt sich zuerst die Frage, wie sich unsere beiden Rechner voneinander unterscheiden

            Comment


            • #7
              Hallo,
              ist eine gute Idee. Ich arbeite mit W2K, C++Builder 5.0, BDE(Version?), Paradox-Tabelle, eigener BDE-Alias.
              (Ich finde die BDE-Version nicht).
              Ist vielleicht die Paradox-Tabelle das Problem?
              MfG
              Helmut Bor

              Comment


              • #8
                Hallo,

                mit Paradox geht das auch. Die BDE-Version ist anhand der Uhrzeit der Dateien aus dem BDE-Verzeichnis erkennbar. Da ich auch nur noch mit Windows 2000 (SP1) arbeitet, ist auch das Betriebssystem nicht der Grund. Bleibt nur noch der BCB 5 und die BDE (?) als Unterschied übrig

                Comment


                • #9
                  Hallo,

                  na dann bleibt mir nur noch, dass ich es mal mit Delphi probiere. Aber das müsste ich erstmal erlernen ;-)
                  Ich werde noch ein paar Dinge testen, vielleicht finde ich den Fehler noch heraus.
                  Nochmals, Danke!

                  Gruss Helmu

                  Comment

                  Working...
                  X