Announcement

Collapse
No announcement yet.

Prozedur ohne rückgabe von Recordset

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

  • Prozedur ohne rückgabe von Recordset

    Ich habe eine Prozedur die auch einen Recordset zurück liefert.
    Kann ich die Prozedur so aufrufen das ich den Recordset und auch die Metadaten
    nicht zurück bekomme?
    Spricht ich möchte nur das die SP was tut aber mir keine Recordset's zurück gibt.
    Die SP selber darf ich nicht ändern.

  • #2
    Darfst du neue SP's definieren? Denn nur den RS einfach im Client zu verwerfen wird unnötig Netzlast erzeugen.

    Comment


    • #3
      ja eine neue SP die die andere aufruf darf ich defienieren

      Comment


      • #4
        Dann mach es halt so. Neue SP und das "bischen" serverinterne Last ist zwangsweise nötig aufgrund definition Aufgabe.

        Comment


        • #5
          Wie, wenn ich eine neue SP mache und in der die alte aufrufe kriege ich trotzdem die Rocordset's zurück

          Comment


          • #6
            Du bekommst ihne aber brauchst doch nichts damit machen

            Comment


            • #7
              Originally posted by Bernhard Geyer View Post
              Du bekommst ihne aber brauchst doch nichts damit machen
              Das ist klar, die will ich aber nicht.

              Comment


              • #8
                Ich würde sagen: Das geht nicht. Aufgabenstellung nicht lösbar.

                Comment


                • #9
                  Hallo,

                  die Recordsets werden auf jeden Fall produziert, da möchte ich dem Bernhard auf jeden Fall zustimmen. Du könntest doch aber einfach die Daten (ich unterstelle ADO.NET) über SqlCommand.ExecuteNonQuery abrufen. Dann wird kein Dataset produziert, sondern nur eine Integerzahl, die Dir die Anzahl der von Procedure "verwurschtelten" Zeilen zurückgibt. Ob die Daten nicht trotzdem über das Netzwerk gepumt werden, müsste man prüfen.
                  Noch eine Möglichkeit wäre in einer neu zu erstellenden Procedure eine temporäre Tabelle zu erstellen, die der Struktur der von Proc1 gelieferten Daten entspricht, um sie dort einfach einzufügen - so in dem Stil (Pseudocode):

                  Proc1:
                  ...
                  select a,b,c from tab

                  ProcNeu:
                  create table #bla (a, b, c)

                  insert into #bla(a, b, c)
                  execute Proc1
                  return

                  Wenn Du nun die ProcNeu aufrufst, dann wird zwar Proc1 ausgeführt, aber die Daten definitiv nicht an den Client geliefert. Allerdings ist diese Vorgehensweise - na ja - ziemlich bäh..., müsste aber klappen.

                  Gruß
                  Olaf

                  Comment


                  • #10
                    Danke euch beiden, SET FMTONLY ist fast das was ich suche leider sendet es mir die Metadaten zurück.

                    Comment


                    • #11
                      Es gibt noch eine Option
                      SET NOCOUNT ON
                      die unterdrückt Rückmeldung

                      Olaf
                      Olaf Helper

                      <Blog> <Xing>
                      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                      Comment

                      Working...
                      X