Главная страница
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.094 c
3-1121166891
Ирина
2005-07-12 15:14
2005.08.21
Сортировка


4-1119610541
DelphiN!
2005-06-24 14:55
2005.08.21
Вызов процедуры основного модуля из потока


4-1118906834
leonidus
2005-06-16 11:27
2005.08.21
Как получить слово выделенное в другом приложении


3-1120817732
Алёна
2005-07-08 14:15
2005.08.21
Обращение к User Defined Function в MS SQL Server


14-1122822870
WAP
2005-07-31 19:14
2005.08.21
>>>>> ОПРОС: Все о вашем мониторе! <<<<<