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

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

ошибка при повторном открытиии ADOStoredProc [D7, XP]


Кирей ©   (2009-07-28 14:18:00) 

Первый раз пытаюсь работать с хранимыми процедурами. При первом вызове процедуры, отрабатывает все отлично, а при повторном - ошибка "Access violation at address 4dd63404 in module 'sqloledb.dll'. Read of address 00000018"
with ADOStoredProc1 do
  begin
   Close;
   ProcedureName:='poslug_add';
   Parameters.Refresh;
   Parameters.ParamByName('@rslist').Value:=adotable6.FieldValues['id'];
   Parameters.ParamByName('@rsposl').Value:=trim(ch);
   Prepared := True;
   ExecProc;
   close;
  end;

Что я сделал неправильно?


Ega23   (2009-07-28 16:46:00) [1]


> разобрался,  Prepared := True; было лишнее


Нет, не лишнее.
А вот в твоём коде Parameters.Refresh; - вот это, походу, лишнее.


Кирей   (2009-07-28 16:11:00) [2]

разобрался,  Prepared := True;было лишнее


Кирей   (2009-07-28 14:50:00) [3]

Сервер MS SQL Server 2000
Хранимая процедура
CREATE PROCEDURE dbo.poslug_add(@rslist int, @rsposl char(15))
AS
begin
INSERT INTO list_poslug
                     (id_list, id_usl, name, cena, pidstava, norma, norma2, norma3, master1, master2, master3, mastermoney, mastermoney2, mastermoney3, norma_avto)
SELECT     @rslist AS id_list, poslugi.id_usl AS id_usl, poslugi.name AS name, poslugi.summa AS cena, poslugi.pidstava, poslugi.norma, poslugi.norma2,
                     poslugi.norma3, poslugi.master1, poslugi.master2, poslugi.master3, insps.zarplata AS mastermoney, insps2.zarplata AS mastermoney2,
                     insps3.zarplata AS mastermoney3, poslugi.norma_avto
FROM         SP_poslug poslugi LEFT OUTER JOIN
                     SP_insp insps ON insps.id_insp = poslugi.master1 LEFT OUTER JOIN
                     SP_insp insps2 ON insps2.id_insp = poslugi.master2 LEFT OUTER JOIN
                     SP_insp insps3 ON insps3.id_insp = poslugi.master3
WHERE     (poslugi.id_usl IN (select num from Temp_tranzit  where komp=@rsposl))
end
GO

Что еще нужно, говорите.


Anatoly Podgoretsky   (2009-07-28 14:46:00) [4]

Невозможно, приведено недостаточно информации.


Кирей   (2009-07-28 14:45:00) [5]


> Объект не создан.

Не знаю как исправить, помогите плз.


Anatoly Podgoretsky   (2009-07-28 14:42:00) [6]

Объект не создан.


Кирей   (2009-07-28 14:41:00) [7]

убрал, все равно эта ошибка


clickmaker   (2009-07-28 14:32:00) [8]

а close-то зачем?
close нужен, если open


Наверх

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