Главная страница
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.024 c
4-1120221696
Pearled
2005-07-01 16:41
2005.08.21
Помогите создать DACL


6-1114143431
M@X
2005-04-22 08:17
2005.08.21
компоненты TcpClient TcpServer


1-1122620023
serjufa
2005-07-29 10:53
2005.08.21
Метод Activate из класса Range завершен неверно


14-1122941411
k2
2005-08-02 04:10
2005.08.21
Imagine Cup 2005


14-1122653780
Alexander Panov
2005-07-29 20:16
2005.08.21
Фото от 24.06.2005г.