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

Вниз

курсор не возвращает записи   Найти похожие ветки 

 
ekto ©   (2008-10-15 09:33) [0]

всем доброго времени суток

есть запрос(SQL Server 2005):

DECLARE @name NVARCHAR(255), @i INT
DECLARE crLenta CURSOR STATIC
 FOR SELECT [name],  COUNT(tl.id) cn  
       FROM text_lenta tl JOIN messages ms ON tl.id = ms.id_text
     GROUP BY  [name]
     HAVING COUNT(tl.id) > 1

DECLARE crID CURSOR STATIC
 FOR SELECT tl.id , ms.id
       FROM text_lenta tl JOIN messages ms ON tl.id = ms.id_text
      WHERE [name] = @name
 
 OPEN crLenta

 FETCH crLenta INTO @name, @i
 WHILE @@FETCH_STATUS = 0
   BEGIN
     OPEN crID
     FETCH crID INTO @mess_id, @text_id
     print @@fetch_status

строка print @@fetch_status печатает -1, хотя отдельно выполненный запрос:

SELECT tl.id , ms.id
       FROM text_lenta tl JOIN messages ms ON tl.id = ms.id_text
      WHERE [name] = @name

возвращает записи. Где ошибка?


 
Palladin ©   (2008-10-15 09:42) [1]


> ekto ©   (15.10.08 09:33) 

интересный ты парень... ругается на crLenta, а проверяешь crID... молодец, что еще можно сказать...


 
ekto ©   (2008-10-15 09:46) [2]


> Palladin ©   (15.10.08 09:42) [1]

да не, ругается на crID... т.е. не ругается, просто не выбирается ничего, хотя должно


 
Palladin ©   (2008-10-15 09:50) [3]

упс, извнияюсь, внутри второй open не заметил...
ну не знаю как 2005, я сильно еще с ним не работал, но в 2000 я явно всегда указываю

FETCH NEXT FROM crLenta INTO @name, @i
WHILE @@FETCH_STATUS = 0
  BEGIN
    OPEN crID
    FETCH NEXT FROM crID INTO @mess_id, @text_id
    print @@fetch_status


 
ekto ©   (2008-10-15 09:53) [4]


> Palladin ©   (15.10.08 09:50) [3]

вроде как NEXT FROM по умолчанию... ща гляну


 
ekto ©   (2008-10-15 09:57) [5]

не, не помогает


 
Palladin ©   (2008-10-15 10:09) [6]

сомневаюсь, что подобное сработает

DECLARE crID CURSOR STATIC
FOR SELECT tl.id , ms.id
      FROM text_lenta tl JOIN messages ms ON tl.id = ms.id_text
     WHERE [name] = @name


 
ekto ©   (2008-10-15 10:12) [7]


> Palladin ©   (15.10.08 10:09) [6]

почему? Поле в выборку надо включить?


 
Palladin ©   (2008-10-15 10:20) [8]

@name на момент декларации - Null
попробуй так


DECLARE @name NVARCHAR(255), @i INT
DECLARE crLenta CURSOR STATIC
FOR SELECT [name],  COUNT(tl.id) cn  
    FROM text_lenta tl JOIN messages ms ON tl.id = ms.id_text
    GROUP BY  [name]
    HAVING COUNT(tl.id) > 1

OPEN crLenta
FETCH crLenta INTO @name, @i
WHILE @@FETCH_STATUS = 0
  BEGIN
    DECLARE crID CURSOR STATIC
    FOR SELECT tl.id , ms.id
       FROM text_lenta tl JOIN messages ms ON tl.id = ms.id_text
       WHERE [name] = @name

    OPEN crID
    FETCH crID INTO @mess_id, @text_id
    print @@fetch_status
    ....
    close crID
    deallocate crID


 
ekto ©   (2008-10-15 10:32) [9]


> Palladin ©   (15.10.08 10:20) [8]

спасибо большое!



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

Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
15-1221911341
Урсулапов
2008-09-20 15:49
2008.11.23
Какой программой можно редактировать субтитры?


3-1208518790
NetZorro
2008-04-18 15:39
2008.11.23
динамический sql запрос в delphi


15-1222326364
123-ий
2008-09-25 11:06
2008.11.23
Работа с NOD32


2-1223560708
sql___
2008-10-09 17:58
2008.11.23
получить все дочерние эл-ты дерева


15-1222320877
Кое кто
2008-09-25 09:34
2008.11.23
Google празднует своё десятилетие...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский