Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2015, 21:22   #1
<Валюшка>
 
Регистрация: 26.11.2011
Сообщений: 4
По умолчанию помогите пожалуйста с процедурой

вот задание:
Создать процедуру с параметрами «Код категории кинофильма», «Цена билета на места 1-ой категории» и «Цена билета на места 2-ой категории». Процедура должна выполнять проверку, есть ли данная категория в списке категорий. Если такая запись существует, следует изменить значение полей «Цена билета …» на соответствующие значения параметров. Если такой категории в списке нет, то необходимо добавить новую запись.

вот мой код:
Код:
create proc cena_kat @kod_kat int,@name_kat char(30)='ut'
as
insert into kategoria values(@kod_kat,@name_kat,280,220)
go
exec cen_kat 15,'Ужасы'
select*from kategoria

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

Последний раз редактировалось Stilet; 23.01.2015 в 22:20.
<Валюшка> вне форума Ответить с цитированием
Старый 23.01.2015, 22:13   #2
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

insert - вставить
менять - update
lomastr_ вне форума Ответить с цитированием
Старый 23.01.2015, 22:22   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а если есть, он почему то не меняет цену
Не может такого быть. Если ты конечно не перепутал названия процедуры и того что вызываешь, как это в примере твоем. Или если у тебя не работает какой-то триггер.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.01.2015, 16:19   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Тут некорректно как задание, так и решение.
Задание - потому что требует вставлять переданный код категории в таблицу, а это очень плохая практика, назначение кода должно делаться самой субд при вставке.
Хотя на это в неких условиях можно и закрыть глаза.
А вот решение неверно с самого начала и до самого конца: начнём с того, что требуется процедура с 3 параметрами - код и 2 цены, в решении - 2 параметра - код и имя категории (которая не требуется) , а цен вообще нет.
Во-вторых, никакой проверки на существование записей с таким кодом не делается.
Ну и естественно, нет самого изменения записи, правда, я не знаю Вашей субд и бд, вдруг там есть какая магия.

Таким образом, Вам надо исправить параметры и в коде процедуры написать хотя бы как-то так:
Код:
IF EXISTS(SELECT 1 FROM kategoria WHERE kod = @kod) 
    UPDATE kategoria SET cena1 = @cena1, cena2 = @cena2 WHERE kod = @kod
ELSE
    INSERT kategoria(kod, cena1, cena2) VALUES (@kod, @cena1, @cena2)
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста связать поле Memo с процедурой сортировки Алексей_xXx Помощь студентам 8 04.05.2009 21:19
Помогите с процедурой в Builder C++ 6.0 AntareSFire C++ Builder 1 27.02.2009 16:50
Помогите с процедурой... Arkuz Помощь студентам 10 15.05.2008 08:56
помогите с процедурой на VBA Exo Microsoft Office Excel 2 06.05.2008 10:53