Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> хранимая процедура на UPDATE неправильно работает 
:(
    Опции темы
lsstream
  Дата 20.6.2009, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 20.6.2009

Репутация: нет
Всего: нет



Здравствуйте, я заранее извиняюсь если не в том разделе пишу.
так вот у меня такая проблема)) 
мне нужно обновлять данные во view из нескольких таблиц. делаю я это так: есть метод на выделение. когда выделяю строчку в таблице (view) то все данные каждого поля заполняются в textbox'ы. далее если надо я их редактирую, и потом обновляю хранимой процедурой. 
у меня все поля типа nvarchar() и два поля типа int (одно из них id, и естественно не считывается в текстбокс, второе - год)
проблема в том что обновляется только поле год.
хранимая процедура написана вроде правильно, вот ее текст:

Код

ALTER PROCEDURE dbo.StoredUp
    (
    @book_name nvarchar(MAX)
    ,@avtor_name nvarchar(MAX)
    ,@god int
    ,@country_name nvarchar(MAX)
    ,@janr nvarchar(MAX)
    )
AS     BEGIN
declare @id_avtor int
declare @id_country int
declare @id_janr int
declare @id_book int
SELECT @id_avtor=id_avtor FROM avtori WHERE avtori.avtor_name=@avtor_name
SELECT @id_country=id_country FROM countries WHERE countries.country_name=@country_name
SELECT @id_janr=id_janr FROM janri WHERE janri.janr=@janr
SELECT @id_book=id_book FROM books WHERE books.book_name=@book_name


UPDATE avtori SET @avtor_name=avtor_name WHERE id_avtor=@id_avtor

UPDATE countries SET country_name=@country_name WHERE id_country=@id_country

UPDATE janri SET janr=@janr WHERE id_janr=@id_janr

UPDATE books SET god=@god WHERE id_book=@id_book

UPDATE books SET book_name=@book_name WHERE id_book=@id_book


END


подскажите в чем возможная проблема?
PM MAIL   Вверх
SKrivosein
Дата 21.6.2009, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: нет
Всего: 8



Тажело разобратся не видя таблиц. Но главная проблема мне кажется вот в чем,  значение например "countries.country_name" у тебя в таблице уникально? Что получится если там несколько одинаковых значений при выполнении этого,
Код

DECLARE @id_country int
....
SELECT @id_country=id_country FROM countries WHERE countries.country_name=@country_name
 выберет последнее которое найдёт селект. 
Иначе зачем вобще находить "id_country", приказ 
Код
UPDATE countries SET country_name=@country_name WHERE country_name=@country_name
 должен нормально работать, но в этом случае изменит все значения в таблице
 Возможно я в чемто ошибаюсь.

Это сообщение отредактировал(а) SKrivosein - 21.6.2009, 03:26


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.