Announcement

Collapse
No announcement yet.

Manueller Refresh bei MDB ???

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

  • Manueller Refresh bei MDB ???

    Hallo,

    wenn ich in eine Access2000-DB einen Neuen Datensatz schreibe und danach alle Feldwerte vom Feld "Name" in eine DBLookupCombobox einlese, fehlt der zuletzt angelegte Datensatz.
    Wenn ich die Sache im Debug-Modus durchlaufe ist er da. Genauso, wie wenn ich die Daten erst nach 10 Sekunden nochmals in die Combobox einlese.
    Woran kann das liegen??
    Am Cache?? Kann ich die DB irgendwie zwingen, die Daten aus dem Cache gleich zu schreiben??

    Vielen Dank.

  • #2
    Hallo,

    >Kann ich die DB irgendwie zwingen, die Daten aus dem Cache gleich zu schreiben??

    Ja.

    Um bessere Performance-Ergebnisse zu erzielen, puffert die Microsoft JET ENGINE die Daten lokal zwischen, wobei dies auch für Schreib-Zugriffe gilt. Während bei DAO ein Leeren dieses Caches vorgesehen war, ist dies bei ADO nicht mehr der Fall. Statt dessen muss man auf JRO zurückgreifen:

    1. Microsoft Jet and Replication Objects Library importieren <br>
    2. Microsoft ActiveX Data Objects Library importieren <br>
    3. Delphi-Unit <b>ADOInt</b> einbinden <br>
    4. Mit der Typumwandlung die ADOInt-Macke korrigieren <br>
    5. JRO-Methode <b>RefreshCache</b> aufrufen
    <pre>
    uses JRO_TLB, ADOInt, ADODB_TLB;

    procedure TForm1.Button1Click(Sender: TObject);
    var
    aJet : IJetEngine;
    aConn : _Connection;
    begin
    ADOConnection1.Connected := True;
    aJet := CoJetEngine.Create;
    aConn := ADODB_TLB._Connection(ADOConnection1.ConnectionObj ect);
    aJet.RefreshCache(ADODB_TLB._Connection(aConn));
    StatusBar1.SimpleText := 'RefreshCache erfolgreich aufgerufen.';
    end;
    </pre>
    P.S: Laufen beide Zugriffe über die gleiche Connection

    Comment


    • #3
      Ja, ich lasse alles über die gleiche Connection laufen. Ist das nicht gut ?

      Comment


      • #4
        Das geht schon in Ordnung, eine getrennten Verbindungen wäre bei diesem Problem nicht hilfreich

        Comment

        Working...
        X