Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возвращает первую запись / 13 сообщений из 13, страница 1 из 1
02.07.2003, 15:33
    #32197424
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Сделал хранимую процедуру там использую курсор для передвижения по записям.
Когда смотрю через дебугер возвращает 3 записи как положенно
а когда запускаю из Аксесса возращает только первую
В чем причина???

declare Proba cursor
FOR select id FROM dbo.table1
Open Proba
fetch proba into @id
WHILE @@FETCH_STATUS = 0
BEGIN
Exec @ID2=[Procedure1] @id
if @Id2=@CodePr - входной параметр
begin
Select * From dbo.table1 where ID=@ID
Fetch next from Proba into @ID
end
else
Fetch next from Proba into @ID
end
close Proba
deallocate Proba
return
...
Рейтинг: 0 / 0
02.07.2003, 15:49
    #32197438
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Забыл сказать
adp AccessXP SQL2000
...
Рейтинг: 0 / 0
02.07.2003, 15:51
    #32197440
Nick987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Скорее всего Аксесс получает первую запись и на том успокаивается.
Нужно переделать sp так, чтобы она возвращала записи в одном запрсе, например через временную таблицу или накапливать id в строковой переменной, типа @id = 1 or @id = 2.........
...
Рейтинг: 0 / 0
02.07.2003, 15:53
    #32197443
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
вот оно, старое наследие
рекордсета,
так и тянет народ
на перебор записей.
запросы для этого есть.
даже сами sql-цы советуют
не использовать перебор
записей: падает резко
производительность
судя по твоей процедуре
перебор по-моему не нужен
...
Рейтинг: 0 / 0
02.07.2003, 15:54
    #32197445
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Во Временную таблицу не могу, так как потом нужно что бы была возможность редактировать эти записи
...
Рейтинг: 0 / 0
02.07.2003, 15:58
    #32197453
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Как не нужен, если не буду делать перебор то он будет постояно обрабатывать тольео 1-ю запись.
А мне нужно перебрать все записи по очереди, так как с каждой записью я запускаю на исполнение процедуру2 которая возаращает нужные записи, кот соот-ют этим перебираемым записям
...
Рейтинг: 0 / 0
02.07.2003, 16:06
    #32197462
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
что делает вторая хп?
...
Рейтинг: 0 / 0
02.07.2003, 16:06
    #32197463
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Когда смотрю через дебугер возвращает 3 записи как положенно

Что это за зверь такой "дебугер" ?

Что бы это ни было (подозреваю что Query Analyzer), но он возвращает не три записи, а три раза по одной (есть разница?!)

Хам правильно сказал наследие работы с рекордсетами сказывается.
Данную проблему решить можно по разному.
И решать ее нужно не перебором записей, а формированием условия для отбора.
Как вариант во временную таблицу сформировать записи (даже с помощью курсора, хотя и не желательно), а затем отобрать из нужной таблицы те записи, которые присутствуют во временной.
...
Рейтинг: 0 / 0
02.07.2003, 16:13
    #32197474
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Дебугер - да в QA жму на процедуру правой кнопкой и Debug :-))

да вы правы он отбирает мне 3 раза по одной записи и причем они все разные
а аксес получает первую и все.
Как же быть,аааа
Целый день просидел над этими процедурами и........ :-((
...
Рейтинг: 0 / 0
02.07.2003, 16:14
    #32197475
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
инколду
debugger есть такой зверь
причем классный
зверь
в нем можно построчно
идти по хп
и проверять правильность
выполнения хп
аналог как в VBA.
вызывается из QA
в контекстном меню для
конкретной хп
но...
...
Рейтинг: 0 / 0
02.07.2003, 16:17
    #32197478
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Да Debug классная вещь, очень удобная видно по шагам что присходит и кто чего кому передает.
Но почему он мне 3 раза возвращает по одной записи а не все 3 хором, хотя выполняет все за одни раз, тоесть не выходит из хп. пока не переберет все записи с 1-й по последнею
Че делать?
...
Рейтинг: 0 / 0
02.07.2003, 16:22
    #32197489
Dmit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
Ладно, мне уже до дому пора. может кто нить еще сможет что нить посоветовать. Спасибо!!!
...
Рейтинг: 0 / 0
02.07.2003, 16:36
    #32197527
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращает первую запись
2 Хам
Я знаю, что есть такой режим в QA.
Но он работает только если сервер для одного пользователя, а у меня не так, поэтому не пользуюсь.

2 Dmit
Можно извратиться и заставить аксес забирать три раза по одной записи, но это коряво и не правильно.
Я же дал вариант.
Вместо селектов, делаешь инсерт во временную таблицу, а после цикла выбор из таблицы записей, которые присутствуют во временной.
Есть еще варианты, но думаю что все это борьба с последствиями, а не с причиной.
Скажи для чего все это нужно. Думаю можно обойтись без курсора.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возвращает первую запись / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]