Zum Inhalt springen

Cursor


bigpoint

Empfohlene Beiträge

Schon wieder ein prob ;)

Ich habe in eine Tabelle1 eine SpalteS und dort steht ein Zahl zB 35011004 in eine andere Tabelle2 ist auch eine SpalteS wo steht auch ein Zahl Jetzt muß ich solange in der Tabele2 SpalteS einen Satz suchen bis gefunden.

Die regeln sind so: wenn in der Tabele2 SpalteS die Zahl 35011004 nicht gefunden ist zahl um zwie von rechts kürzen und weiter suchen so habe ich es versucht funk aber leider noch nicht richtig ;(


declare x_cursor cursor for select x from Tabele1
where .....
open x_cursor
fetch next from x_cursor
into @ SpalteS
while @@fetch_status = 0
begin
set @x =@x/100
fetch next from x_cursor into @x
if exists (select bed from Tabele2 where SpaleS=@SpalteS)
begin
......
end
fetch next from x_cursor into @ SpalteS
end
close x_cursor
deallocate x_cursor

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Panther

Hi,

wo kommt der erste Wert für @x her ? Du settzt am anfang der Bedingung @x = @x/100

hast aber X noch keinem Wert zugewiesen., oder fehlt da noch ein Teil des Codes ?

Hi , ja richtig es fehlt noch teil von Cod, der wert @x ist gesetz allerdings läft es nur eimal durch ;(

Habe mir gedacht LOOP zu benutzen aber irgend wie klapt es nicht ;(

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich würde das fetch next am Ende lassen dann er will ja die Daten die er gerade hat vergleichen und dann zum nächsten.

Was ich aber nicht verstehe :

du setzt in der Schleife @x = @x/100 und liest dann nen Wert aus dem Cursor in die Variable @x ein ohne sie vorher zu verarbeiten, oder hast du was vom Code aus der Schleife rausgenommen ?

Den Schreibfehler in der If Exists Bedingung hast du nur hier beim posten gemacht , oder ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Panther

Was ich aber nicht verstehe :

du setzt in der Schleife @x = @x/100 und liest dann nen Wert aus dem Cursor in die Variable @x ein ohne sie vorher zu verarbeiten, oder hast du was vom Code aus der Schleife rausgenommen ?

Den Schreibfehler in der If Exists Bedingung hast du nur hier beim posten gemacht , oder ?

Entweder verstehe ich das ganze was Du machst oder es läuft nicht richtig denn wenn ich so versuche zu machen kriege ich nichts gefunden dh. er sollte nicht nur einmal zwei stelle abschneiden sondern solange bis was gefunden oder bis null


declare x_cursor cursor for select x from Tabelle1
where ...
open x_cursor;

fetch x_cursor into @x;


print 'fetch_status von x_cursor :'
print @@fetch_status –@@fetch_status ist 0
while @@fetch_status = 0
begin

print'@x vor' –hier kriege ich den orginal Wert
print @x
if exists (select was from Tabelle2 where x=@x) – ist hier was falsch ?
begin
print'x'
print @x – hier kommt er nie ;(
end
fetch next from x_cursor into @x
set @x =@x/100
print'x nach'
print @x -- hier schneidet er zwei stellen ab aber geht nicht wieder hoch
end
close x_cursor
deallocate x_cursor

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von 007ski

PHP]

declare x_cursor cursor for select x from Tabelle1

where ...

open x_cursor;

fetch x_cursor into @x;

print 'fetch_status von x_cursor :'

print @@fetch_status –@@fetch_status ist 0

while @@fetch_status = 0

begin

print'@x vor' –hier kriege ich den orginal Wert

print @x

if exists (select was from Tabelle2 where x=@x) – ist hier was falsch ?

begin

print'x'

print @x – hier kommt er nie ;(

end

fetch next from x_cursor into @x -Warum hier nochmal ein Fetch next ? Mach das doch nach dem Print

set @x =@x/100

print'x nach'

print @x -- hier schneidet er zwei stellen ab aber geht nicht wieder hoch

end

close x_cursor

deallocate x_cursor

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...