Announcement

Collapse
No announcement yet.

Multiple-step OLE DB operation generated errors

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

  • Multiple-step OLE DB operation generated errors

    Hallo,<br>

    ich habe eine Abfrage folgender Form (TADOQuery; clUseServer; MDAC 2.5 SP2)<br>
    select TabA, TabB, TabC, TabC<br>
    union<br>
    select TabA, TabB, TabC, TabC<br>

    In letzter Zeit häufen sich die Fehler: <br>
    Source: Microsoft OLE DB Provider for SQL Server<br>
    NativeError: 0<br>
    Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.<br>
    (SQLState: )<br>

    Wie bekomme ich heraus, was da genau schief läuft??

    Bis dann.

  • #2
    Hallo,

    indem die <b>Errors</b>-Kollektion der TADOConnection-Instanz (alias Connection-Objekt) abgefragt wird:
    <pre>
    with ADOConnection1 do
    for iError := 0 to Errors.Count - 1 do
    sError := sError + Errors[iError].Description + #10#13;
    ShowMessage(sError);
    </pre&gt

    Comment


    • #3
      Hi,<br>

      ja, genau so hab ich es auch gemacht. Die obige Fehlermeldung war auf diese Weise abgefragt worden. Über TADOConnection.Errors -> Source,NativeError,Description,SQLState<br>

      Source: Microsoft OLE DB Provider for SQL Server<br>
      NativeError: 0<br>
      Description: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.<br>
      SQLState: <br>

      Was nu ;-

      Comment


      • #4
        Hallo,

        in diesem Fall würde ich das Microsoft SQL Server-Tool <b>Profiler</b> auf die Lauer legen und dort alle von ADO generierten SQL-Anweisungen mitprotokollieren lassen. Eventuell führt eine andere ADO-Datenmenge zu diesem Zeitpunkt eine Operation aus, die inkompatibel zur eigenen Operation bei der verwendeten Connection-Konfiguration ist (wobei in diesem Fall getrennte TADOConnection-Instanzen das Problem lösen sollten)

        Comment


        • #5
          Hi,<br>
          offensichtlich war letzteres der Fall(ich nutzte Client- und Serverseitige Cursor). Jetzt habe ich alles auf Serverseitige Cursor umgestellt (z.T. große Datenmengen) und die Fehler sind bisher ausgeblieben, allerdings hab ich jetzt einen Neuen ;-)<br>
          Bei einer Funktion die sehr oft aufgerufen wird, trat bisher (Testzeit ca. 8 Stunden) einmal folgender Fehler auf:<br>
          The requested properties cannot be supported<br>
          Ich werde das weiter beobachten und wenn das System nur einen seltenen Schluckauf hatte, kann ich damit leben. Würde mich allerdings doch interessieren was es ist.<br>
          <br>
          Bei dieser Gelegenheit noch ein weiteres Problem:<br>
          Im Programm wird eine simple TADOStoredProc verwendet. Diese legt eine Datensatz an und gibt über einen OUTPUT Parameter (integer) die SatzID zurück (@@IDENTITY). Im Query-Analyzer läuft es Problemlos und auch im bisherigen Programm. Nach einigen Programmerweiterungen läuft es nicht mehr und liefert den Fehler:<br>
          "Ungültige Variant-Operation" bei folgendem Code<br>
          Result:= Parameters.ParamByName('@SatzID').Value;<br>
          Erst nachdem ich die Prozedur innerhalb einer Transaktion starte, ist der Fehler weg. Ich denke allerdings, dass diese Methode eher eine Symptombekämfung als eine korrekte Lösung ist. Was kann da passiert sein.<br>
          Das SQL Server-Tool Profiler liefert leider nicht die Rückgabewerte einer aufgerufenen Prozedur oder hab ich das nur noch nicht gefunden?.
          <br>
          Uff, viel Text, aber ich hoffe Sie können mir nochmal auf die Sprünge helfen.
          <br>
          Bis dan

          Comment


          • #6
            Hallo,

            die Fehlermeldung <i>"Ungültige Variant-Operation" </i> deutet darauf hin, dass der Output-Parameter @SatzID einen NULL-Wert zurückliefert (d.h. @@IDENTITY zum Zeitpunkt des Zuweisens an den Output-Parameter nicht mehr gültig war). Was passiert, wenn @@IDENTITY durch SCOPE_IDENTITY ersetzt wird

            Comment

            Working...
            X