powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / StoredProc
5 сообщений из 5, страница 1 из 1
StoredProc
    #32068790
Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть такая хранимая процедура:

" CREATE PROCEDURE dbo.PROCRoubli
@PrPROCRoub varchar(20),
@UserName varchar(50), @IdRegisterRoub int, @IdBag int, @Summa float, @IdSymbol int, @DateBag datetime, @PrDaysOff bit,
@Route varchar(50), @FIORunner1 varchar(50), @FIORunner2 varchar(50), @DateReg datetime,
@UserNameRecount varchar(50),@UserGlavKassir varchar(50), @UserNameControl varchar(50),
@SummaRecount float, @Deficit float, @Surplus float, @IdBagRoub int, @DateRecount datetime,
@UserNameChange varchar(50), @ERR int output
AS
BEGIN tran BagRoubli
// первое условие
if @PrPROCRoub='new' begin
insert into RegisterRoub(id_registerroub, DateReg, UserName, Route, FIORunner1, FIORunner2)
values (@idregisterroub, @DateReg, @UserName, @Route, @FIORunner1, @FIORunner2)

end

//второе условие
if @PrPROCRoub='delete' begin
Delete from BagWithRoub where id_bagrub=@IdBagRoub
end

if(@@error!=0) begin
rollback tran BagRoubli
select @ERR=1
end
else begin
select @ERR=0
commit tran BagRoubli
end
GO
"

Проблема в том, что второе условие почему-то отрабатывает, только тогда, когда отработало первое условие!!

Т.е., по нажатию одной кнопки в приложении, идет вставка данных,
по нажатию другой можно удалить эти данные. Если, данные вставил
и закрыл приложение, то после нового запуска эти данные не нельзя удалить, пишет EDBEngineEror "Invalid parametr".
А если, все делаю сразу, то все нормально!

Вот так удалюю:

"
with DataModuleKassa.StoredProcRoubli do
begin
Close;
ParamByName('@PrPROCRoub').AsString:='delete';
ParamByName('@IdBagRoub').AsInteger:=IdBagRoub;
ParamByName('@ERR').AsInteger:=1;
Prepare;
ExecProc;

if(ParamByName('@ERR').AsInteger=1) then
begin
MessageDlg('Сумка не была удалена! Попытайтесь еще раз!',mtError, [mbOk], 0);
Close;
end
else begin
MessageDlg('Сумка была удалена!',mtInformation, [mbOk], 0);
Close;
"
Может все дело в транзакции? Подскажите?
...
Рейтинг: 0 / 0
StoredProc
    #32068797
YuriAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо было записать тригеры - INSERT and DELETE.
а так вроде все нормально, может это не соответствует тому что у тебя ?
...
Рейтинг: 0 / 0
StoredProc
    #32068807
Фотография Chicago
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А уверены, что ошибка не на клиенте? Проверьте, чему равняется IdBagRoub после перезапуска программы перед попыткой удаления.
...
Рейтинг: 0 / 0
StoredProc
    #32068967
Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибки в приложении нет... все данные передаются нормально...
...
Рейтинг: 0 / 0
StoredProc
    #32069031
zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А остальные параметры ?

В первом случае Вы в процедуру передали все параметры.

А во втором только три.

Параметров по умолчанию в процедуре нет
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / StoredProc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]