Zum Inhalt springen

MSSQL Cursor


Serear

Empfohlene Beiträge

Tach zsm ,

ich hätte mal ein kleines Problem.

OPEN AppDev;

FETCH AppDev INTO @AppDev;

while(@@FETCH_STATUS = 0) begin

select @LID = max(LID) from prjadm.aufgabenplan;

SET @LIDCounter = @LID + 1;

insert into prjadm.aufgabenplan values (@LIDCounter, @Zaehler, @LID, 'Gemeldete Fehler beheben.', '10', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '0', '0', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '0','0');

insert into prjadm.usepro_todo values (@AppDev, @LIDCounter);

FETCH AppDev INTO @AppDev;

end

CLOSE AppDev;

und zwar habe ich das gefühl dass der in die while-schleife nicht reingeht.

Kann es dadran liegen das der Cursor momentan nur 1datensatz aus dem select wiederbekommt ?

Dass er nach dem ersten Fetch direkt den Status auf -1 setzt , da ja keiner mehr da ist ?

Mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

sorry, der hier FETCH AppDev INTO @AppDev; stimmt glaube ich nicht

das ist die Oracle Syntax

die MS SQL Syntax lautet -> FETCH next FROM AppDev INTO @AppDev;

Das ist soweit ich weiß falsch, "FETCH CURSOR INTO VARIABLE" klappt normalerweise auch.

Ich habs auch mit dem NEXT FROM ausprobiert gleiches ergebnis ..

er tut einfach nichts was in der while schleife ist.

Habe nun mal 3 prints eingebaut.

1 vor dem while

einen weiteren in der while schleife

und nach der schleife

nur der Print vor und nach der while schleife kommt durch.

Mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Cursor deklaration :

DECLARE AppDev CURSOR for

select distinct REF_USER FROM prjadm.v_usepro_aufgabe where REF_Cost_ID = '3' and REF_Control_ID = @Zaehler;

-- Habs vor 2 Minuten noch getested es kommt aufjedenfall ein Datensatz zurück.

Variablen deklaration:

DECLARE @AppDev int;

wobei ich nicht wirklich glaub das dort ein fehler ist

Der print vor dem while( allso schon nach dem open) geht ja durchaus noch durch.

Nur der print in der while schleife geht nicht.

Es sieht so aus für mich als ob , @@FETCH_STATUS auf -1 steht direkt nach dem ersten fetch.

Mfg

Bearbeitet von Serear
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn @@fetch_Status tatsächlich = -1 ist, dann gilt folgendes:

FETCH statement failed or the row was beyond the result set

lass Dir die Variable mal mit Print anzeigen. Sollte da wirklich ein -1 stehen, dann gibt entweder Dein Cursor keine Daten zurück, oder etwas anderes sorgt dafür, dass er auf die Nase fällt

Ist @Zaehler gefüllt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Zaehler ist gefüllt.

hab das problem gelöst, zwar bissel unlogisch in meinen Augen aber naja.

Hab das Deklarieren des Cursors mal direkt vor dem Open hingesetzt nun klappts.

Keine ahnung wie das auffem Weg verloren gegangen ist.

Naya, es klappt.

Dir danke ich für deine Hilfe @ementiel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...