Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

Курсоры в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.046 c
10-1100068864
AlexGof
2004-11-10 09:41
2005.08.21
1С как OLE не работает из Web-приложения работающего на IIS ?


4-1120037901
Juice
2005-06-29 13:38
2005.08.21
доставка почты с сервера ( OLE Outlook )


14-1122620079
Ёжик
2005-07-29 10:54
2005.08.21
Net use


3-1121071009
bendela
2005-07-11 12:36
2005.08.21
ado+ms Access редактирование записи


1-1122865029
Lexa
2005-08-01 06:57
2005.08.21
Ошибка при работе со строковыми переменными?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский