Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MSSQL Cursor

Empfohlene Antworten

Veröffentlicht

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

Was bitte ist das denn für eine Formatierung eines Textes? Wer soll das lesen?

aber mal ins blaue geschossen -> nein, es liegt nicht daran, dass Du nur einen Datensatz erhälst, sondern daran, dass Du gar keinen bekommst

  • Autor

Warum sollte ich keinen Datensatz zurück bekommen ?

Wenn ich das Statement welches ich für den Cursor benutze ganz nromal auf der Datenbank loslasse kommt dort auch ein Datensatz zurück

Mfg

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;

natürlich in beiden Fetch Statements

  • Autor
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

  • Autor

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

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?

  • Autor

@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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.