Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 17:22   #1
Илья Сергеевич
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 16
По умолчанию ADOStoredProc не находит параметры

Проблема в том что ADOStoredProc утвержает что параметр @iduser_u not found

Процедуры удаления SQL
для всех трех таблиц

Код:
CREATE PROCEDURE user_d
	@iduser_u int
AS
Delete from users
WHERE 
	iduser_u =@iduser_u
GO

CREATE PROCEDURE Svtel_d
	@idsv int
AS
Delete from Svtel
WHERE 
	idsv=@idsv
GO

CREATE PROCEDURE debt_d
	@iddebt int
AS
Delete from debt
WHERE 
	iddebt=@iddebt
GO
Код в Delphi
Код:

Код:
{Asking user, you sure that you want delete note?}
  If MessageDlg('Вы уверены, что хотите удалить запись',mtConfirmation,[mbYes,mbNo],0)=mrYes Then
   Begin
    Try
     DM.ADOConnection_DM.BeginTrans;
     Label3.Caption:=IntToStr(DM.ADOQuery_Uiduser_u.Value);
     {DM.ADOStoredProc_d_debt.Open;
     DM.ADOStoredProc_d_debt.Refresh;  }
     DM.ADOStoredProc_d_debt.Parameters.ParamByName('@iduser_u').Value:=DM.ADOQuery_Uiduser_u.Value;
     If DM.ADOQuery_Sv.Locate('idabo_sv',DM.ADOQuery_Uiduser_u.Value,[])=True Then
      DM.ADOStoredProc_d_SvTel.Parameters.ParamByName('@idsv').Value:=DM.ADOQuery_Svidsv.Value;
     If DM.ADOQuery_Debt.Locate('idsv_de',DM.ADOQuery_Svidsv.Value,[])=True Then
      DM.ADOStoredProc_d_debt.Parameters.ParamByName('@iddebt').Value:=DM.ADOQuery_Debtiddebt.Value;
     DM.ADOStoredProc_d_Uses.ExecProc;
     DM.ADOStoredProc_d_SvTel.ExecProc;
     DM.ADOStoredProc_d_debt.ExecProc;
     DM.ADOConnection_DM.CommitTrans;
     ShowMessage('Изменения приняты!');
    Except
     MessageDlg('Удаление не прошло!'+#13+'Запись заблокирована, либо уже удалена! Попробуйте позже либо перезапустите приложение!',mtError,[mbOK],0);
     DM.ADOConnection_DM.RollbackTrans;
    End;
   End;
open и refresh это отчаянные попытки наладить работу!

Что не так? Для другой таблицы такой же код(со своими параметрами) и все работает.

Последний раз редактировалось mihali4; 17.01.2010 в 17:43. Причина: ошибка ввода
Илья Сергеевич вне форума Ответить с цитированием
Старый 17.01.2010, 17:48   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Из стандартного хэлпа:
Цитата:
Call ExecProc to execute a stored procedure. Before calling ExecProc:

1 Provide any input parameters in the Parameters property. At design-time, a developer can provide parameters using the Parameters Editor. At runtime an application must access the Parameters property directly.
2 Set the Prepared property to true to bind the parameters.
mihali4 вне форума Ответить с цитированием
Старый 17.01.2010, 18:10   #3
Илья Сергеевич
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 16
По умолчанию

Что-то я не понял...
Если намек на установку параметра Prepared=True тогда он у меня уже стоит.
Если на присваивание Parameters конкретного значения то я это гарантирую.

???
Илья Сергеевич вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как остановить процедуру ADOStoredProc с установленным ExecuteOptions:=[eoAsyncExecute]; Иванчо БД в Delphi 3 30.05.2012 13:43
При удалении ADOStoredProc утверждает что parameter '@iddebt' not found Илья Сергеевич Помощь студентам 0 16.01.2010 04:38
ADOStoredProc выполнение процедуры с параметрами funball БД в Delphi 3 18.11.2009 15:13
Проблема с ADOStoredProc Skazi21101 БД в Delphi 1 06.05.2009 14:19
почему не находит??? vipER Общие вопросы C/C++ 1 26.09.2007 14:26