Главная страница
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.082 c
14-1122635764
boriskb
2005-07-29 15:16
2005.08.21
Отпуск.


14-1122186004
syte_ser78
2005-07-24 10:20
2005.08.21
Как я ровел выходные (часть Х)


1-1122626595
Виталька 2005
2005-07-29 12:43
2005.08.21
В Excel XP работает ,а в Excel 97 нет:(


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


14-1122443778
vidiv
2005-07-27 09:56
2005.08.21
Настройка DNS сервера