Heim php教程 PHP开发 SQL-Cursor Ein einfaches Beispiel

SQL-Cursor Ein einfaches Beispiel

Dec 14, 2016 am 11:28 AM

1. Die Rolle des Cursors:

Beim Auswählen wird ein Ergebnissatz zurückgegeben. Wenn Sie während des Rückgabevorgangs des Ergebnissatzes eine Datenzeile lesen müssen. Diese Datenzeile muss verarbeitet werden, z. B. die Rückgabe einer Abfrageergebnismenge basierend auf den gelesenen Daten als Abfragebedingungen usw. Die Anwendung muss einen Cursor verwenden.

Mit Cursorn können Benutzer die nächste Zeile, vorherige Zeile, erste Zeile oder letzte Zeile abfragen und diese gelesenen Zeilen verarbeiten.

2. Cursor-Beispiel

FUNKTION ERSTELLEN GetMRPlnFullBom – Erstellen Sie eine Funktion, um jede Zeile im Dokument basierend auf dem Dokumentschlüssel abzufragen und die Daten in jeder Zeile zu verarbeiten.​​​​

(

DocEntry int,

LineNum int,

LineNumLevel nvarchar(100),

ItmID nvarchar (20),

ItmName nvarchar(100),

LineType char(1),

Qty numeric(19,9),

BomLevel int,

ParentEntry int,

ParentItmID nvarchar(20),

TopEntry int,

TopItmID nvarchar(20),

BaseEntry int ,

BaseLineNum int ,

BaseType int

)

AS

BEGIN

Declare @Itm ID varchar(50) , @ Qty int ,@LineNum int ,@ObjType int --Deklarieren Sie lokale Variablen

--Deklarieren Sie einen Cursor, @ kann nicht vor XXX hinzugefügt werden, wie zum Beispiel der folgenden MRPlnA_ItmID, das Format ist DECLARE XXX CURSOR FOR

DECLARE MRPlnA_ItmID CURSOR FOR

SELECT ItmID , Qty ,LineNum , ObjType FROM MRPlnA Where DocEntry = @DocEntry – Die Anweisung muss zwischen DECLARE XXX CURSOR FOR und OPEN XXX stehen.

Open MRPlnA_ItmID --Öffnen Sie den Cursor

FETCH NEXT FROM MRPlnA_ItmID INTO @ItmID , @Qty ,@LineNum , @ObjType --FETCH NEXT FROM XXX INTO ... Aktualisieren Sie den Cursor-Spezifikationsdatensatz und wrap und speichern Sie die ausgewählten Daten in temporären Variablen. Das FETCH-Format umfasst neben NEXT auch PRIOR, FRIST und LAST. Dies sind die vorherige Zeile, die erste Zeile und die letzte Zeile. ​

WHILE @@FETCH_STATUS = 0 --@@FETCH_STATUS globale Variable, wird verwendet, um den letzten Status von FETCH abzufragen und die Schleife zu steuern. Er ist 0, wenn der Lesevorgang abgeschlossen ist, -1, wenn der Lesevorgang fehlschlägt, und -2, wenn der Datensatz gelöscht wird.

BEGIN

Einfügen in @TAB

Select DocEntry,LineNum,LineNumLevel,ItmID,ItmName,LineType,Qty*@Qty,BomLevel,ParentEntry,

ParentItmID,TopEntry,TopItmID , @DocEntry SourceEntry ,@LineNum BaseLineNum ,@ObjType BaseType  

From GetBomFullItems(@ItmID, 'V 1.0', GetDate()) TD --GetBomFULLItmes ist eine weitere Abfragefunktion. ​

FETCH NEXT FROM MRPlnA_ItmID INTO @ItmID , @Qty ,@LineNum , @ObjType – Select bewegt sich zur nächsten Zeile.

ENDE

CLOSE MRPlnA_ItmID – Cursor schließen

DEALLOCATE MRPlnA_ItmID – Cursor loslassen

RETURN

ENDE

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)