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

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

Выполнение хранимой процедуры [D6, MSSQL]


robi ©   (2002-11-13 15:28:00) 

Здравствуйте, уважаемые знатоки! Вот такая проблемка:
на сервере есть ХП на обновлении записи

CREATE PROCEDURE dbo.UpdateAgent
@Name varchar(40),
AS
begin transaction
update dbo.Abonent
set
Name = @Name
commit transaction
GO

в приложении вызывается эта процедура

procedure TChangeAbonentForm.OkClick(Sender: TObject);
begin
with UpdateProc do begin
UpdateProc.Parameters.ParamByName("@Name").Value:=NameEdit.Text;
UpdateProc.ExecProc;
end;
Close;
end;


приложение выполняет ее и закрывается
Но! Захожу в Enterprise, открываю таблицу, ИЗМЕНЕНИЙ нет!
Может я чего-то не догоняю? Помогите, пожайлуста!


Андрей Прокофьев   (2002-11-13 16:36:00) [1]

У меня Ваш пример работает нормально.
Проверьте Connection :))


robi   (2002-11-13 16:13:00) [2]

>Андрей Прокофьев Извиняюсь, ошибочка. В базе естесно, без запятой

:((


robi   (2002-11-13 16:10:00) [3]

Есть еще одна процедура InsertProc

with InsertProc do begin
InsertProc.Parameters.ParamByName("@Name").Value:=NameEdit.Text;
InsertProc.ExecProc;

Выполняется корректно, т.е в базе добаляется запись.
Почему не выполняется Update?


Андрей Прокофьев   (2002-11-13 16:10:00) [4]

CREATE PROCEDURE dbo.UpdateAgent
@Name varchar(40),
AS

тут зяпятая лишняя. значит процедура не такая, как Вы писали


robi   (2002-11-13 16:02:00) [5]

>Андрей Прокофьев
UpdateProcProcedureName=UpdateAgent

Prepared - true


Андрей Прокофьев   (2002-11-13 15:50:00) [6]

Set the Prepared property to True


Андрей Прокофьев   (2002-11-13 15:49:00) [7]

Хорошо бы узнать, чему равно UpdateProc.ProcedureName


robi   (2002-11-13 15:42:00) [8]

1.Попробовал без begin transaction commit transaction, все равно не обновляет
2.Я решил отказаться от ипользования ст.методов и перейти на ХП


Kaban   (2002-11-13 15:34:00) [9]

with UpdateProc do begin
UpdateProc.Parameters.ParamByName("@Name").Value:=NameEdit.Text;
UpdateProc.ExecProc;
end;

Интересный синтаксис


Mike_Goblin   (2002-11-13 15:32:00) [10]

1. ХП итак работает внутри транзакции, begin transaction commit transaction не нужны
2. Стоит ли для такого простого действия писать ХП?


Наверх

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