Announcement

Collapse
No announcement yet.

ADO und Dauerschleife

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

  • ADO und Dauerschleife

    <pre>Hallo,
    ist irgend wie bekannt, daß die ADO-Express Komponenten oder ADO selber irgend wie in eine Dauerschleife geraten kann?
    Helmut
    </pre>

  • #2
    Hallo,

    nur dann, wenn in einer WHILE NOT EOF-Schleife der Aufruf von Next vergessen wird :-

    Comment


    • #3
      <pre>Nun gut, genug gelacht :-)

      Also, ich mache gleichzeitig mehrere ADO-Datenbankverbindungen auf.
      Manchmal kommt es plötzlich zu 100% Last.

      Es wird auch keine Schleife ausgeführt.

      Es sind mehrere Threads, die alle eine eigene ADOConnection haben.
      Es ist schon, das muß ich zugeben, sehr unwahrcheinlich, daß es an den MS-ADO-Objekten liegt. Aber ADO-Express ? hätte doch sein können.

      Also Du glaubs nicht!

      Helmut
      </pre&gt

      Comment


      • #4
        Mal eine ganz blöde frage: Könnte es sein, dass es durch die mehreren Connections zu Kreuzbezügen kommt, die bei einer eigenen Connection angemahnt würden?

        Gruß Bernhar

        Comment


        • #5
          Hallo,

          &gt;Es sind mehrere Threads, die alle eine eigene ADOConnection haben.

          die TADOConnection-Instanzen werden auch wirklich erst in der Execute-Methode des Threads erzeugt und geöffnet, nachdem CoInitialize aufgerufen wurde

          Comment


          • #6
            <pre> Ja ..., in der Execute wird CoInitialize
            aufgerufen und danach die Connection erzeugt
            und geöffnet. Ich habe das Problem bisher nur
            unter NT4.0 festgestellt. Unter Win 2000 ist
            es bisher noch nicht aufgetreten. Teu, Teu Teu.

            Ich habe aber noch eine andere Frage zu ADO.

            Wenn ich eine ADODataSet öffne, und den Cursor
            auf usClient eingestellt habe. Kommen dann alle
            Datensätze in einem Fetsch zum Client, unabhängigt wie Cachsize steht ?

            Und kann man bei dieser Einstellung die Daten-
            sätze einzeln aus der ADODataSet wieder
            entfernen, wenn man sie nicht mehr braucht,
            ohne diese zu schließen.
            Also pro Record den belegten Speicher wieder frei geben.

            Helmut </pre&gt

            Comment


            • #7
              Hallo,

              &gt;.. Cursor auf usClient eingestellt habe ... unabhängigt wie Cachsize steht?

              im Fall von clUseClient transport ADO automatisch die vollständige Ergebnismenge "am Stück" über einen Firehouse-Cursor zur OLE DB Client Cursor Engine. Der Wert von CacheSize spielt dabei keine Rolle, da OLE DB automatisch die optimale Einstellung verwendet, die den größten Datendurchsatz im vorgefundenen Netzwerk garantiert.

              &gt;..die Daten-
              sätze einzeln aus der ADODataSet wieder
              entfernen..

              Normalerweise fordert man nur die Datensätze an, die benötigt werden (WHERE-Einschränkung). Wenn das gefüllte Recordset verkleinert werden soll, könnte man nur die "guten Datensätze" in eine zweite Recordset-Instanz kopieren und dann die originale Instanz entsorgen

              Comment


              • #8
                <pre>Hallo,

                mit:
                >..die Daten- sätze einzeln aus der ADODataSet wieder entfernen..
                meinte ich eigendlich etwas anderes.
                Wenn die Datensätze so zu sagen alle zunächst
                zum Client transportiert werden, und die beim
                Client in einer Schleife abgearbeitet werden.
                Bleiben die schon abgearbeiteten im Speicher.
                Diese Datensätze würde auf dem Client aber
                nicht mehr benötigt, also könnten die aus
                dem Speicher entfernt werden. Aber geht das ??

                Helmut </pre&gt

                Comment

                Working...
                X