Announcement

Collapse
No announcement yet.

Probleme mit unit AdoDB (TimeOut)

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

  • Probleme mit unit AdoDB (TimeOut)

    Hallo zusammen,

    ich habe großes Problem mit den ADO-Komponenten. Verwende meistens das TBetterAdoDataset. Allerdings auch das TAdoCommand und die TAdoConnection. Nun habe ich manchmal sehr große Abfragen, bei denen es u.U. etwas länger dauert, bis ich eine Antwort bekomme. Ich habe alle möglichen Kombinationen versucht, wie ich mit dem CommandTimeOut und ConnectionTimeOut dieses Problem beheben könnte. Das Problem ist aber offensichtlich, dass der Defaultwert immer verwendet wiurd, ausser man setzt das TimeOut unmittelbar vor den Execute oder vor dem Open. Da ich aber in meiner Software ca. xxxxx Datasets und Commands verwende, kann ich unmöglich alles händisch ändern. Nun möchte ich in der AdoDB den Defaultwert von 30 auf 300 setzen und diese bpl neu kompilieren. Nur finde ich kein Package mit welchem ich diese Unit kompillieren kann. Kann mir da bitte jemand helfen.

    Die Sache wäre ziemlich dringend.........

    mfg

    Astner Klaus

  • #2
    den TimeOut-Wert habe ich auch schon mal hochgesetzt, hat aber nichts genützt. Dann fiel mir ein eine Index-Datei anzulegen ... und das Problem war verschwunden.

    Wenn eine Index-Datei vorhanden ist, dann muß man im Programm m.W. gar nichts ändern. Das betrifft alleine den Server.

    Grüße, Martin Schad

    Comment


    • #3
      Das nützt bei mir nichts, ich habe sehr komplizierte Abfragen. Ich muss dass mit dem TimeOut hinbekommen.

      Herr Kosch,

      können Sie mir vielleicht einen Tip geben ?

      mfg

      Astner Klau

      Comment


      • #4
        Hallo,

        ich verwende TAdodataset und hatte auch das eine oder andere Problem mit großen Abfragen. Nach Hochsetzen des Commandtimeouts (in der Entwicklungsumgebung) war das Problem erledigt. Ich kann nicht bestätigen, dass man das unmittelbar vor dem Open machen muss, ganz im Gegenteil.

        Grüße

        Juli

        Comment


        • #5
          Ich verwende Delphi

          Comment


          • #6
            Hallo Klaus,

            im Notfall könntest du folgende Procedure schreiben:
            procedure BeforeOpen(Dataset: TDataset);
            begin;
            TADODataset(Dataset).CommandTimeout := 300;
            end;

            Die Funktion kannst du dann bei allen Datasets als BeforeOpen-Prozedur auf der Eigenschaftenseite verwenden oder sogar per for-schleife durch das Form.Components - Array beim öffnen automatisch auf alle Datasets anwenden!

            Gruß

            Philip

            Comment


            • #7
              Das ist eine gute Idee, danke, werde es mal probieren

              mfg

              Astner Klau

              Comment


              • #8
                Hallo Philip,

                das funktioniert allerdings nur für persistente, ich habe allerdings viele TAdoCommand und TBetterAdoDatasets, welche ich zur Laufzeit erzeuge....................

                Da wird es dann etwas schwieriger. Wenn ich das Package dclAdoDb neu kompilieren könnte, dann könnte ich den Defaultwert in der Unit AdoDB hochsetzen. Die Unit ist ja da, aber ich weiss nicht wie ich sie ohne package compilieren kann

                Comment


                • #9
                  Hallo Klaus,
                  ich hatte auch das Problem und bin dann "native" über _Connection,
                  _Command und _RecordSet gegangen.
                  Ist eigentlich die vorgehensweise die Andreas Kosch empfiehlt, wenn es mit den Borland-Komponenten mal nicht funktioniert.

                  Gruss
                  Dietma

                  Comment


                  • #10
                    Das Problem ist eigentlich, dass es sich durch mein ganzen Projekt zieht, und ich es nicht umbauen kann...

                    Comment

                    Working...
                    X