imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 20.11.2003, 16:50     # 1
strah
Member
 
Регистрация: 16.10.2002
Адрес: Moscow
Сообщения: 312

strah Молодецstrah Молодецstrah Молодец
Вопрос по синтаксису хранимых процедур sql server.

Помогите чайнику,пытаюсь разобраться,почему при выполнении:

CREATE PROCEDURE Col_zap @col int out
AS
select @col=count(*) from biblref
GO

выдается ошибка.

А при выполнении
CREATE PROCEDURE Col_zap @col int =0 out
AS
select @col=count(*) from biblref
GO

Значение @col после выполнения всегда равно 0,хотя количество записей в таблице biblref далеко не нулевое.

Кстати никто не подскажет,где в сети найти грамотный материал по этой теме с хорошим количеством примеров?
strah вне форума  
Старый 21.11.2003, 10:57     # 2
someone312002
Junior Member
 
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120

someone312002 Путь к славе только начался
Что-то типа этого... за точность не ручаюсь...

create procedure test (@inParam int = 0 OUTPUT)
as
begin
select @inParam = 10
end

declare @vParam int
declare @sendParam int
exec @vParam = test(@sendParam OUTPUT)
print @vParam
__________________
"я не волшебник - я только учусь..." (c)
...а зовут меня Олег...
someone312002 вне форума  
Старый 21.11.2003, 17:59     # 3
strah
Member
 
Регистрация: 16.10.2002
Адрес: Moscow
Сообщения: 312

strah Молодецstrah Молодецstrah Молодец
Еще кто-нибудь подскажет(мне нужна хранимая процедура,при обращении к которой через adostoredproc, будет выдаваться количество записей в таблице)
Или(и) объяснение,почему те что наверху не работают?
strah вне форума  
Старый 24.11.2003, 10:44     # 4
someone312002
Junior Member
 
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120

someone312002 Путь к славе только начался
а для этого пользуй @@rowcount после селекта
__________________
"я не волшебник - я только учусь..." (c)
...а зовут меня Олег...
someone312002 вне форума  
Старый 24.11.2003, 13:29     # 5
strah
Member
 
Регистрация: 16.10.2002
Адрес: Moscow
Сообщения: 312

strah Молодецstrah Молодецstrah Молодец
А поподробней,мне там понадобится не общее количество,а выбор по условию(where там еще будет)
strah вне форума  
Старый 24.11.2003, 18:40     # 6
someone312002
Junior Member
 
Регистрация: 17.12.2002
Адрес: [EST], Tallinn
Сообщения: 120

someone312002 Путь к славе только начался
даже если ты сделаешь выборку, используешь как-то эти данные (фильтр и т.п.) - всё равно, колличество обработанных строк будет занесено в переменную @@rowcount.
__________________
"я не волшебник - я только учусь..." (c)
...а зовут меня Олег...
someone312002 вне форума  
Старый 24.11.2003, 18:48     # 7
strah
Member
 
Регистрация: 16.10.2002
Адрес: Moscow
Сообщения: 312

strah Молодецstrah Молодецstrah Молодец
Я видимо не совсем верно задал вопрос.Перефразировка помещена в форум отдельной темой.
strah вне форума  
Старый 26.11.2003, 18:36     # 8
aceofext
Member
 
Регистрация: 27.08.2002
Адрес: Канада
Пол: Male
Сообщения: 343

aceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуру
Всё у тебя правильно наверху. Просто при выполнении нужно указать, что параметер, который ты передаёшь - не простой, а OUTPUT (кстати, someone312002 в своем первом примере это указал).
В SQLе так:

delcare @count int
execute Col_zap @col output

в ADO у объекта Parameter есть свойство Direction, которое может принимать несколько значений, среди которых есть adParamInputOutput (=3) и adParamOutput (=2).

В ADO.NET тоже самое есть у объекта SqlParameter.
aceofext вне форума  
Старый 26.11.2003, 18:44     # 9
strah
Member
 
Регистрация: 16.10.2002
Адрес: Moscow
Сообщения: 312

strah Молодецstrah Молодецstrah Молодец
Post

Спасибо большое!!!
strah вне форума  
Старый 26.11.2003, 18:48     # 10
aceofext
Member
 
Регистрация: 27.08.2002
Адрес: Канада
Пол: Male
Сообщения: 343

aceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуру
Я так понял, ты с на ADO это делаешь? Если помог, с тебя пятак. Я, понимаешь, пятаки собираю

Добавлено через 1 минуту:
Лана, и четвёрка пойдёт
aceofext вне форума  
Старый 26.11.2003, 18:50     # 11
strah
Member
 
Регистрация: 16.10.2002
Адрес: Moscow
Сообщения: 312

strah Молодецstrah Молодецstrah Молодец
Какая четверка сразу пятак и поставил.
Всех проблем не решил,но про parametr очень нужное упоминание)
strah вне форума  
Старый 26.11.2003, 18:51     # 12
aceofext
Member
 
Регистрация: 27.08.2002
Адрес: Канада
Пол: Male
Сообщения: 343

aceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуруaceofext Гуру
Был рад помочь
aceofext вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:51.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.