Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Две записи вместо одной [D5, MSSQL]


Bocman ©   (2002-12-15 23:27:00) 

Доброе время суток!
Есть хранимая процедура:
CREATE PROCEDURE get_book
@user_name varchar(100),
@book_title varchar(150),
@date datetime=NULL
AS
DECLARE
@user_id bigint,
@book_id bigint

SELECT @user_id=user_id FROM tbUsers WHERE name=@user_name
SELECT @book_id=book_id FROM tbBooks WHERE title=@book_title

IF @date IS NOT NULL
INSERT tbLog (user_id, book_id, date_get) VALUES (@user_id, @book_id, @date)
ELSE
BEGIN
SET @date=GETDATE()
INSERT tbLog (user_id, book_id, date_get) VALUES (@user_id, @book_id, @date)
END

SELECT * FROM tbLog
GO


В итоге получается две одинаковые записи, а должна вставляться только одна!
Может кто-нибудь что-нибудь подскажет?


Владислав   (2002-12-16 12:33:00) [1]

А на счет двойных записей: ты может еще что-нибудь с триггерами "намутил" ;)


Владислав   (2002-12-16 12:31:00) [2]

Ну ты "намутил" :)
Если я правильно тебя понял, тебе нужна функция ISNULL()
INSERT tbLog (user_id, book_id, date_get) VALUES (@user_id, @book_id, ISNULL(@date, GETDATE()))


Snap   (2002-12-15 23:30:00) [3]

Ты сайтом не ошибся? ;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо