Announcement

Collapse
No announcement yet.

ADO

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

  • ADO

    Hallo Leute,

    ich muss mal was los werden. Ich verstehe das alles überhaupt nicht mehr. Wenn man sich alles ein wenig genauer anschaut, kann man nur die Hände über den Kopf zusammenschlagen.

    Sollte man den ganzen mist aus dem Fenster schmeißen, und sich ein Pinguin auf den Tisch setzen. Oder vielleicht wieder doppelt verkette Listen zu Fuß programmieren. Und einen binären Baum wieder selbst ausbalancieren.

    Wahrscheinlich kennt nur Microsoft die optimalen Einstellungen für SQL Server 7.0 oder Access 2000.

    CursorLocation, CusorTyp und LockTyp, sehr schöne Eigenschaften. Wenn das dann auch funktionieren würde. Schon bei einem Refresh des aktuellen Datensatzes, sitzt man einen Tag und probiert und probiert. Ich weis nicht was das mit RAD zu tun hat. CursorTyp Dynamic, der einzigste Typ der eine echte Multiuserumgebung unterstützt funktioniert nicht. Wenn andere User zwischenzeitlich neue Datensätze eingeben, sieht man diese auf seiner Station nicht.

    Vielleicht hat ja jemand schon einmal unter NT Workstation eine Datei mit dem Explorer kopiert, auf anderen Workstations die das gleiche Verzeichnis im Zugriff haben, wird ein automatisches Refresh ausgelöst. Wieso ist das bei modernen Datenbanken nicht möglich, es geht hier schließlich um das Verwalten von Informationen. Aber wie es aussieht, funktioniert das ganze nach dem Motte : „Da weis der eine nicht, was der andere tut“ . Ist das die kapitalistische Antwort auf Datenbanktechnologie ?

    Kennt jemand die optimalen Einstellungen für eine Multiuser Umgebung bezüglich der Komponenten ADOConnection und ADODataSet. Es werden die Datenbanken Access 2000 und den SQL Server 7.0 eingesetzt. Ich wollte eigentlich den SQL Server einsetzen, aber die Refreshzeiten lagen da bei mehreren Sekunden. Der Provider JetEngine 4.0 braucht für die gleiche Anzahl von Datensätzen weniger als eine halben Sekunde.

    Zur letzten Frage. Welche Datenplattform sollte man für professionelle Multiuser Applikationen einsetzten, BDE, ADO oder INTERBASE ?

    Bis dann
    Mathias

  • #2
    Hallo,

    ein Wort vorweg - die Probleme haben ihre Ursache <b>nicht</b> in ADO ;-)

    Eine SQL-Datenbank verhält sich zwangsläufig anders als eine Desktop-Datenbank wie MS ACCESS - daher muss auch die eigene Anwendung diese grundlegenden Unterschiede bei ihrem Design berücksichtigen. Der zum SQL Server 7 gehörende <b>Profiler</b> sollte in jedem Fall dazu benutzt werden, um die Auswirkungen von aufgerufenen ADO-Methoden zu prüfen. Dabei stellt man fest, dass ADO je nach Konfiguration bei einem <b>Refresh</b> für jeden Datensatz der Ergebnismenge eine eigene SELECT-Abfrage zum SQL Server schickt, um die neuen Daten anzuzeigen. Daher sollte man nicht Refresh, sondern statt dessen <b>Resync</b> aufrufen, um nur den aktuellen Datensatz über ein einziges SELECT zu aktualisieren.

    Die Frage "Wer darf wann was sehen" wird im <b>SQL-Standard</b> beantwortet - wobei der gewählte Isolation Level die Regeln festlegt. Der Microsoft SQL Server 7 hält sich in diesem Punkt nur an den SQL-Standard, so dass hier der "Falsche" beschuldigt wird.

    Lange Rede - kurzer Sinn: SQL-Datenbanken folgen eigenen Regeln, die man als Entwickler bei Strafe des Scheiterns nicht ignorieren darf

    Comment

    Working...
    X