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

Вниз

Куда исчезают параметры TADOStoredProc?   Найти похожие ветки 

 
Bless1   (2004-03-04 12:44) [0]

Люди, кто может объяснить мне причины следующего явления:
Есть объект proc1: TADOStoredProc;
В design-time свойство ProcedureName проинициализировано именем некоторой хранимой процедуры, принимающей в качестве параметра число.
Соответственно, в parameters этот параметр видно.Но если запустить программу на выполнение и сделать proc1.execProc, то она вылетает с сообщением об ошибке "parameter not found".
Действительно, в  WatchList proc1.parameters.count=0.
Почему? Куда девались параметры?
Причем, для одних ADOStoredProc такая ошибка выскакивает, для других - нет.
И даже для тех, для которых ошибка выскакивает, она внезапно исчезает. По непонятным для меня причинам.
От ошибки можно излечиться, если на форму кинуть еще одну
ADOStoredProc и настроить ее на ту же хп (помогает не всегда).
Или если настроить на эту же хп одну из уже существующих,  корректно работающих ADOStoredProc.
Причем правильно работать начинает и та proc1, которая до этого не работала. И продолжает правильно работать, даже если удалить "лечащую" ADOStoredProc.

Кто может объяснить сей феномен?


 
Users   (2004-03-04 13:42) [1]

Лучше всего всегда при инициализации модуля, формы и т.д. делать

1 ) Устанавливать Connection;
2 ) Присваивать название процедуры;
1 ) ADOStoredProc1.Parameters.Refresh;
2 ) Заполнять ВСЕ параметры процедуры значениями указанными на сервере в качестве умолчательных.

Почему могут пропадать параметры : смена названия процедуры.


 
Nikolay M. ©   (2004-03-04 16:07) [2]

Да, есть такое. Что обидно: корпоративная политика запрещала пользоваться алиасами и, тем более, ODBC-шными DSN-ами, а вот как раз через них все работало. Далеко в исходники залезть не получилось, поэтому пришлось работать через TQuery. Обидно, а что делать :(


 
Bless1   (2004-03-04 17:33) [3]

to Users>
ADOStoredProc1.Parameters.Refresh помогло. Спасибо.

Но все-равно, почему параметры исчезали? Название процедуры я не менял: то, что в design-time поставил, то и оставалось.

>2 ) Заполнять ВСЕ параметры процедуры значениями указанными на
>сервере в качестве умолчательных.

А это зачем?


 
Users   (2004-03-04 18:38) [4]

Смысл такой - если у сторед процедуры есть 10 параетров, а ты работаешь всего с 1-м инициализировать необходимо всегда ВСЕ!

Собственно если работаешь с 1-м параметром, остальные 9 заполняешь умолчательными параметрами.

Если этого не делать возникает ошибка на Windows 2003 Server - пока только на этой ос. Там возникает AV в dll (*ado*.dll точно не помню) при чтении/записи по 0 адресу - скорее всего из за передачи параметров в dll через стек. Стали заполнять все параметры - ошибки исчезли.

Тут по этому поводу пост был сегодня.


 
Users   (2004-03-04 18:39) [5]

Вот пост :

http://delphimaster.net/view/3-1078392079/


 
Bless1   (2004-03-06 09:22) [6]

to User> Спасибо.



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
14-1078497848
Tt
2004-03-05 17:44
2004.04.04
просто


1-1079565881
Almaz
2004-03-18 02:24
2004.04.04
Иконка кнопки закрытия окна


3-1078822586
SergeyV
2004-03-09 11:56
2004.04.04
Почему ADO переспрашивает пароль ?


3-1078210812
aga123
2004-03-02 10:00
2004.04.04
GUID в поле таблицы DBF


14-1078937508
Delphi5.01
2004-03-10 19:51
2004.04.04
Nujnen sovet starih asov