Announcement

Collapse
No announcement yet.

Speichern von Datensätzen ADO = clUseServer

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

  • Speichern von Datensätzen ADO = clUseServer

    Hallo

    Ich bin dabei eine Datenbank mittel ADO zu entickeln, da der Datenbestand sehr groß ist habe ich Cursorlocation auf clUseServer stehen. Wenn ich jetzt einen Datensatz in die tabelle einfügen will bekomme ich folgende Fehlermeldung " Der Provider konnte den Wert nicht ermittel. Mögliche Gründe: der Datensatz wurde gerade erst erstellt...." Wenn ich auf clUseClient stelle funktioniert alles.
    Was mache ich falsch?

    Gruß Andre

  • #2
    Hallo,

    das hört sich so an, als ob ein Datensatz über das Recordset-Objekt eingefügt werden soll und das Recordset dabei im <b>immediate update mode</b> betrieben wird. Im sogenannten <i>immediate update mode</i> (die Recordset-Methode <b>AddNew</b> wird ohne Parameter aufgerufen) geht das Recordset zuerst in den EditMode (adEditAdd) und puffert alle Schreibzugriffe solange zwischen, bis die Update-Methode aufgerufen wird.

    Wie sieht ein Minimalbeispiel aus (SQL-Script der Datenbanktabelle, Konfiguration und Aufruf von ADO), mit dem dieser Effekt jederzeit reproduziert werden kann?

    &gt;..da der Datenbestand sehr groß ist habe ich Cursorlocation auf clUseServer stehen..

    Das eine hat mit dem anderen nichts zu tun. Die Einstellung clUseServer ist primär nur für ACCESS-Datenbanken gedacht, um die Doppelpufferung der MS JET Engine zu vermeiden. Bei einer SQL-Datenbank ist generell clUseClient die "richtige" Wahl. Das Problem der großen Ergebnismengen wird dann über eine geeignete WHERE-Einschränkung gelöst - d.h. das eigene Programm fordert nur die Ergebnismenge an, die momenatan wirklich benötigt wird

    Comment


    • #3
      Hallo Andreas,

      danke für die schnelle Antwort. Ich hatte mich mit dem Umstellen auf clUseServer selbst ausgebremst. Mittels WHERE als Filter ist der Datenbankzugriff schnell genug.

      Andr

      Comment

      Working...
      X