Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Курсоры в MSSQL   Найти похожие ветки 

 
Извращенец2   (2005-07-11 16:35) [0]

Привет всем!

Скажите, можно открыть один курсор внутри второго? Если да, то как ими управляться с помощью @@Fetch_status? Или есть другие методы решения?

Т.е. структура типа:

for i:=1 to n do
begin
  ...
  for j:=1 to m do
  begin
  end;
end

где i,j - курсоры

Заранее спасибо:)


 
Fay ©   (2005-07-11 18:17) [1]

B. Use nested cursors to produce report output
This example shows how cursors can be nested to produce complex reports. The inner cursor is declared for each author.

SET NOCOUNT ON

DECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),
  @message varchar(80), @title varchar(80)

PRINT "-------- Utah Authors report --------"

DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname, au_lname
FROM authors
WHERE state = "UT"
ORDER BY au_id

OPEN authors_cursor

FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname

WHILE @@FETCH_STATUS = 0
BEGIN
  PRINT " "
  SELECT @message = "----- Books by Author: " +
     @au_fname + " " + @au_lname

  PRINT @message

  -- Declare an inner cursor based  
  -- on au_id from the outer cursor.

  DECLARE titles_cursor CURSOR FOR
  SELECT t.title
  FROM titleauthor ta, titles t
  WHERE ta.title_id = t.title_id AND
  ta.au_id = @au_id   -- Variable value from the outer cursor

  OPEN titles_cursor
  FETCH NEXT FROM titles_cursor INTO @title

  IF @@FETCH_STATUS <> 0
     PRINT "         <<No Books>>"    

  WHILE @@FETCH_STATUS = 0
  BEGIN
     
     SELECT @message = "         " + @title
     PRINT @message
     FETCH NEXT FROM titles_cursor INTO @title
 
  END

  CLOSE titles_cursor
  DEALLOCATE titles_cursor
 
  -- Get the next author.
  FETCH NEXT FROM authors_cursor
  INTO @au_id, @au_fname, @au_lname
END

CLOSE authors_cursor
DEALLOCATE authors_cursor
GO


 
Извращенец2   (2005-07-12 06:12) [2]

Fay, принимай всяческие благодарности:)



Страницы: 1 вся ветка

Текущий архив: 2005.08.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
4-1120471657
Gold
2005-07-04 14:07
2005.08.21
как узнать объем памяти занимаемой приложением?


1-1122483643
Galiaf
2005-07-27 21:00
2005.08.21
Аттрибуты файлов.


9-1114885954
Игорь Л.
2005-04-30 22:32
2005.08.21
Класс в Delphi


6-1116004614
Lela
2005-05-13 21:16
2005.08.21
Прием и отображение информации. Протокол HTTP


11-1105695193
DmiSb
2005-01-14 12:33
2005.08.21
Печать страницы Excel не показывая самого Excel ?