Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.03;
Скачать: CL | DM;

Вниз

Уважаемые, помогите...   Найти похожие ветки 

 
xn0bys ©   (2003-01-09 09:45) [0]

НАРОД! промблема c БД: при запросе SQL, вызываю stored procedure, там Update, но она почему-то удаляет запись?

вот stored procedure:
CREATE PROCEDURE pr_Modify (@id_tproc int, @mode char(6),...,@kl char(3))

AS
declare @date datetime
set @date=GETDATE()
if @mode="insert"
begin
insert into tproc(id_obj,...,kl)
values (@id_obj,...,@kl)

insert into tproc_mode(date,mode,id_obj,...,kl)
values (@date,@mode,@id_obj,...,@kl)
end else
if @mode="delete"
begin
delete from tproc
where tproc.id=@id_tproc

insert into tproc_mode(date,mode,id_obj,...,kl)
values (@date,@mode,@id_obj,...,@kl)

end else
if @mode="modify"
begin
update tproc
set id_obj=@id_obj,..., kl=@kl
where tproc.id=@id_tproc

insert into tproc_mode(date,mode,id_obj,...,kl)
values (@date,@mode,@id_obj,...,@kl)
end else
if @mode="delobj"
begin
set @mode="delete"
DECLARE @CursorVar CURSOR
SET @CursorVar = CURSOR READ_ONLY FAST_FORWARD
FOR SELECT id_obj,...,kl FROM tproc where id_obj=@id_obj

OPEN @CursorVar
FETCH NEXT FROM @CursorVar into @id_obj,...,@kl
WHILE @@FETCH_STATUS = 0
BEGIN

insert into tproc_mode(date,mode,id_obj,...,kl)
values (@date,@mode,@id_obj,...,@kl)

FETCH NEXT FROM @CursorVar into @id_obj,...,@kl
END
close @CursorVar
DEALLOCATE @CursorVar

delete from tproc
where tproc.id_obj=@id_obj

end


А вот я ее вызавыю:
sp_prmod.StoredProcName:="pr_Modify;1";
sp_prmod.ParamByName("@mode").Value:="modify";
sp_prmod.ExecProc;

Может кто знает ???


 
Mike_Goblin ©   (2003-01-09 09:51) [1]

а под дебагером гонять пробовал?


 
stone ©   (2003-01-09 09:51) [2]

В данном случае не обязательно писать else в конце конструкции if


 
xn0bys ©   (2003-01-09 09:52) [3]

Да, вот еще что:
В tproc запись удаляется,
а в tproc_mode, все нормально добавляется?


 
xn0bys ©   (2003-01-09 09:53) [4]

2 Stone,
Я зная, просто попробовал.


 
xn0bys ©   (2003-01-09 09:54) [5]

2 Mike_Goblin,
Под Delphi"ским, вроде все нормально.


 
SergSuper   (2003-01-09 09:59) [6]

1. Вобще-то Вы создаёте одну процедуру (pr_Modify), а запускаете другую (pr_Modify ;1)

2. К делу не относится, но зачем же Вы тут используете курсор? Без него будет и намного короче и намного быстрее работать. Просто плакать хочется, видя такое...



 
xn0bys ©   (2003-01-09 10:04) [7]

SergSuper
Вообще-то эту процу до меня писали :)


 
xn0bys ©   (2003-01-17 08:21) [8]

Люди, АУ, ну хоть кто-нить поможет или нет?

Я прогонял через профайлер, там всё ок, типа пишет что модифицирует, процедура delete НЕ выполняется, а запись в базе данных все равно удаляется!

HELP!HELP!HELP!HELP!HELP!HELP!HELP!HELP!HELP!HELP!HELP!HELP!HELP!


 
AlexSV ©   (2003-01-17 10:09) [9]

> xn0bys
подозреваю, что Ваша проблема заключена в этих точках
if @mode="modify"
begin
update tproc
set id_obj=@id_obj, ..., kl=@kl
where tproc.id=@id_tproc
Догадаться сложно, но если бы процедура была приведена полностью, то ответ получили бы сразу.
Наверное в этих точках апдейтится ключ, но Вам виднее :)


 
Mike_Goblin ©   (2003-01-17 10:26) [10]

>2 Mike_Goblin,
>Под Delphi"ским, вроде все нормально.

а под MS SQL debuger, который позволяет отлаживать хранимые процедуры?



Страницы: 1 вся ветка

Текущий архив: 2003.02.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
3-4713
ledzzz
2003-01-17 17:53
2003.02.03
штрихкод


14-5150
pumba
2003-01-17 13:55
2003.02.03
Новосибирские удальцы.


14-5221
Supreme
2003-01-15 20:24
2003.02.03
Возможна ли в России хорошая жизнь?


8-5081
brestmarket
2002-10-18 02:59
2003.02.03
Как на Button нарисовать свою картинку и проиграть звук?


1-4850
Blacker77
2003-01-24 15:31
2003.02.03
Рекурсивный поиск по каталогам