Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Nested cursors i SQL-Server 7

Postades av 2000-12-15 12:18:00 - Sanny Kerold, i forum databaser, Tråden har 2 Kommentarer och lästs av 828 personer

Håller på att konvertera ett projekt från SQL-server 6.5 till 7:an och har
stött på rejäla problem när det gäller nested cursors.
Bifogar ett litet exempel nedan (Northwind).

Här vill jag då plocka ut anställda och sedan visa vilka regioner de har.
Detta fungerar utmärkt i SQL 6.5 och jag får ett resultat som ser ut så här:
Anställd1
Region1
Region2
Anställd2
Region1
osv...

I SQL 7 får jag endast ut de anställda.

Någon som har stött på samma problem? Tacksam för svar.


CREATE PROCEDURE SP_NestedCursorsTest AS

declare @EmployeeID int
declare @LastName nvarchar (20)
declare @FirstName nvarchar (10)
declare @TerritoryID nvarchar (20)
declare @Temp nvarchar (200)

declare cur_Employee cursor for
select EmployeeID,
LastName,
FirstName
from Employees
for READ ONLY

declare cur_Territory cursor for
select TerritoryID
from EmployeeTerritories
where EmployeeID = @EmployeeID
for READ ONLY

open cur_Employee

fetch next
from cur_Employee
into @EmployeeID,
@LastName,
@FirstName

while (@@Fetch_Status = 0)
begin
select @Temp = @FirstName + ' ' + @LastName
print @Temp

open cur_Territory
fetch next
from cur_Territory
into @TerritoryID

while (@@Fetch_Status = 0)
begin
print @TerritoryID

fetch next
from cur_Territory
into @TerritoryID
end
close cur_Territory

fetch next
from cur_Employee
into @EmployeeID,
@LastName,
@FirstName
end

deallocate cur_Territory

close cur_Employee
deallocate cur_Employee

GO


Svara

Sv: Nested cursors i SQL-Server 7

Postades av 2000-12-15 13:06:00 - Christoffer Hedgate

Den andra cursorn (cur_Territory) kompileras vid declare-satsen med det @employeeid som gäller just då, dvs ingenting alls eftersom den inte är satt ännu.

Denna proceduren fungerar (om den är så smart vet jag inte riktigt dock, jag hade försökt hitta nåt annat sätt att lösa det):

CREATE PROCEDURE SP_NestedCursorsTest AS

declare @EmployeeID int
declare @LastName nvarchar (20)
declare @FirstName nvarchar (10)
declare @TerritoryID nvarchar (20)
declare @Temp nvarchar (200)

declare cur_Employee cursor for
select EmployeeID,
LastName,
FirstName
from Employees
for READ ONLY

open cur_Employee

fetch next
from cur_Employee
into @EmployeeID,
@LastName,
@FirstName

while (@@Fetch_Status = 0)
begin
select @Temp = @FirstName + ' ' + @LastName
print @Temp

declare cur_Territory cursor for
select TerritoryID
from EmployeeTerritories
where EmployeeID = @EmployeeID
for READ ONLY

open cur_Territory
fetch next
from cur_Territory
into @TerritoryID

while (@@Fetch_Status = 0)
begin
print @TerritoryID

fetch next
from cur_Territory
into @TerritoryID
end
close cur_Territory

deallocate cur_Territory

fetch next
from cur_Employee
into @EmployeeID,
@LastName,
@FirstName
end

close cur_Employee
deallocate cur_Employee

GO


Svara

Sv: Nested cursors i SQL-Server 7

Postades av 2000-12-15 13:34:00 - Sanny Kerold

Ok...

Det känns ju dock lite tungt att behöva deklarera och deallokera cursorn i ett.
Borde väl inte direkt förbättra prestandan (!?).
Men är det så det skall göras får jag väl acceptera detta.

Tack för svaret hur som helst!


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 682
27 958
271 741
909
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies