Announcement

Collapse
No announcement yet.

stored proc befehl für ms sql

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

  • stored proc befehl für ms sql

    hi,

    wer kennt sich mit stored pro befehle für ms sql aus?

    gruß

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Für welche Version von MS SQL?

    Zudem kennst MS-SQL wohl keine InterBase oder Oracle vergleichbaren Stored Procs sonder man bindet C-Module (oder auch VB) ein.

    <in diesem Falle ganz besonders: Alle Angaben ohne Gewähr&gt

    Comment


    • #3
      hi andreas,

      ms sql 7.0!

      gruß

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        Hi Markus,
        <br>
        <br>"wer kennt sich mit stored pro befehle für ms sql aus? "
        <br>das ist doch sicher nicht die Frage, die dich veranlast hat diese Diskusion zu öffnen, Oder? ;-)
        <br>
        <br>Wo liegt denn das Problem?
        <br>
        <br>Hi Andreas,
        <br>"Zudem kennst MS-SQL wohl keine InterBase oder Oracle vergleichbaren Stored Procs sonder man bindet C-Module (oder auch VB) ein. "
        <br>Das verstehe ich nicht. Unter "Stored Procs" verstehe ich gespeicherte Prozeduren, und die haben doch zunächst mal nichts mit C oder VB zu tuen, da man diese doch in T-SQL implementiert (und das Schema ist bei vielen DB Servern ziemlich gleich (create Proc ... Bla...fertig)).

        MS SQL Hilfe suchen nach "Gespeicherte Prozeduren, Programmieren"
        <br>
        <br>mfg
        <br>P

        Comment


        • #5
          hi patrick,

          ich programmiere heute zum ersten mal eine stored proc und mir ist nicht klar, welche befehle darf ich verwenden, welche nicht usw.! deswegen ist das schon irgendwie meine frage! ich will mir möglichst schnell einen überblick verschaffen!!

          gruß

          marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            Hallo Markus,

            das folgende Beispiel für eine Stored Procedure für den Microsoft SQL Server 7/2000 bucht einen Geldbetrag von einem Konto auf das andere. Je nach vorgefundener Situation muss sich die SP unterschiedlich verhalten:
            <pre>
            CREATE PROCEDURE TransferMoney
            @iFromKontoNr INT, @iToKontoNr INT, @mValue MONEY, @iStatus INT OUTPUT
            AS
            DECLARE @iError INT
            DECLARE @iRowCount INT
            SET @iStatus = 0
            -- Schritt 1: Transaktion starten
            BEGIN TRANSACTION
            -- Schritt 2: Konto des Absenders belasten
            UPDATE Konto
            SET Betrag = Betrag - @mValue
            WHERE KontoNr = @iFromKontoNr
            SELECT @iError = @@ERROR, @iRowCount = @@ROWCOUNT
            -- Schritt 3: Prüfen, ob Schritt 2 erfolgreich war
            IF @iRowCount = 0
            -- Status 1 = Konto des Absenders wurde nicht aktualisiert
            SELECT @iStatus = 1
            -- Zweiten Teilschritt nur im Erfolgsfall starten
            IF (@iERROR = 0) AND (@iRowCount = 1)
            BEGIN
            -- Schritt 4: Konto des Empfängers gutschreiben
            UPDATE Konto
            SET Betrag = Betrag + @mValue
            WHERE KontoNr = @iToKontoNr
            SELECT @iError = @@ERROR, @iRowCount = @@ROWCOUNT
            IF @iRowCount = 0
            -- Status 2 = Konto des Empfängers wurde nicht aktualisiert
            SELECT @iStatus = 2
            END
            -- Schritt 5: Transaktion im Fehlerfall widerrufen
            IF (@iError = 0) AND (@iStatus = 0)
            COMMIT TRANSACTION
            ELSE
            ROLLBACK TRANSACTION
            -- Fehlernummer zurückliefern
            RETURN(@iError)
            </pre>
            Wenn man die Stored Procedure angelegt hat, kann man diese auch gleich im Query Analyzer testen, indem man dort einen Stapel von SQL-Anweisungen ausführen lässt. Das könnte zum Beispiel so aussehen:
            <pre>
            DECLARE @iResult INT
            DECLARE @iStatus INT
            EXEC @iResult = TransferMoney 1,22,12.50,@iStatus OUTPUT
            SELECT @iResult,@iStatus
            </pre>
            Nachdem man die Variablen für den Rückgabewert der Stored Procedure sowie den OUTPUT-Parameter deklariert hat, wird die SP über EXEC aufgerufen. Die anschliessende SELECT-Anweisung gibt den Inhalt der beiden Variablen aus. Der MS SQL Server stellt für Stored Procedures einen eigenen Debugger zur Verfügung, so dass man Zeile für Zeile durch die SP debuggen kann, um sich den Inhalt der Variablen etc. anzuschauen. Wenn sich die SP im Query Analyzer korrekt verhält, macht man im eigenen Programm weiter, um die SP von dort aus aufzurufen.

            Innerhalb der SP darf man alle Befehle aus T-SQL einsetzen. Da in T-SQL auch ein Anbindung an Betriebssystembefehle und COM-Objekte unterstützt wird, kann man in einer SP fast alles machen.

            Weitere Beispiele für den Einstatz von SPs und dem Aufruf aus dem eigenen Delphi-Programm über ADO sind in meinem Buch <i>COM/DCOM/COM+ mit Delphi</i> im Kapitel 16 zu finden

            Comment


            • #7
              vielen dank andreas!!
              Herzliche Grüße

              Markus Lemcke
              barrierefreies Webdesign

              Comment


              • #8
                @markus

                wie die anderen Antworten zeigen, war ich einwenig zu vorschnell, sorry.

                @andreas

                Seit welcher MSSQL-Version gibt es denn T-SQL, hatte da mal was anderes gehört, ist aber schon eine Weile her

                Comment


                • #9
                  hi andreas (kosch)!

                  mit select mache ich auch zuweisung auf variabeln oder?
                  und mit declare werden sie deklariert!

                  wo kann ich den sprachwortschatz nachschauen welche befehle es gibt (while repeat usw)!

                  was bedeutet AS?

                  gruß

                  marku
                  Herzliche Grüße

                  Markus Lemcke
                  barrierefreies Webdesign

                  Comment


                  • #10
                    Hallo

                    @Andreas,

                    die Version 7 ist ja eigentlich eine Version 1.0, denn Microsoft hat den alten, von Sybase stammenden SQL Server 6.5 in die Mülltonne gehauen (das war die Story, als Bill Gates die Top 100 der Datenbankbranche mit dem Scheckbuch eingekauft hat, damit diese parallel zum alten 6.x-Server einen völlig neuen entwickeln). Erst ab der Version 7 ist der MS SQL eine <i>richtige SQL-Datenbank</i>, daher habe ich mich auch erst ab der Version 7 mit diesem Teil näher beschäftigt. Und den Vorsprung hat die Truppe mit der Version 2000 (also die eigentliche Version 2.0) nochmals kräftig ausgebaut.

                    @Markus

                    Die Online-Hilfe ist ausgezeichnet, auch wenn so viel drinn steht, dass man am Anfang leicht die Übersicht verliert. Eine Eigenheit des MS SQL Server liegt darin, dass man mit SELECT auch den Inhalt von Variablen setzen kann (Alternativ zu SET).

                    Mit AS kann man einer Spalte der Ergebnismenge ein neue Bezeichnung als Spaltenüberschrift verpassen.
                    &#10

                    Comment

                    Working...
                    X