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

Вниз

"Залипание" данных при вызове Хранимой процедуры   Найти похожие ветки 

 
pic509 ©   (2006-09-05 15:42) [0]

Столкнулся с такой проблемой: у меня есть Хранимая процедура с входными параметрами (некоторые из них по умолчанию = null). При первом вызове ХП ExecProc выбираются нужные мне данные. Делаю Close. Затем, сменив данные входных параметров, снова вызываю ХП. И получаю старые данные! Как заставить ХП сбросит предыдущий результат???


 
evvcom ©   (2006-09-05 15:48) [1]

> [0] pic509 ©   (05.09.06 15:42)
> При первом вызове ХП ExecProc

Это по-моему в ODAC ExecProc вызывает внутри себя Open. Лучше сам сразу Open вызывай, оно так нагляднее и всем привычнее.

> Затем, сменив данные входных параметров, снова вызываю ХП.
> И получаю старые данные!

Чудес не бывает. Какие компоненты доступа? Если ODAC, поставь Debug := True; и удивись.


 
pic509 ©   (2006-09-05 15:54) [2]

Пробовал Open. Тот же эффект. Я использую BDE.


 
evvcom ©   (2006-09-05 16:05) [3]

> [2] pic509 ©   (05.09.06 15:54)
> Я использую BDE.

Все равно чудес не бывает. Значит в Watch посмотри перед Open, что там в параметрах. А лучше сначала протестируй свою ХП в родной среде разработки. Чего у тебя там? Какая СУБД?


 
pic509 ©   (2006-09-05 16:08) [4]

Совсем забыл: я пишу в Делфи 5, база на MS SQL 2000


 
pic509 ©   (2006-09-05 16:47) [5]

Просмотрел входные параметры через SQL-monitor:
при первом вызове, к примеру передается параметр №1. Следующий вызов передает параметр №3. Но параметр №1 каким-то образом сохраняется!?
Как сделать инициализацию (сброс) входных параметров ХП. Делать влоб ...ParamByName("name").value=null мне кажется не красиво и громоздко. Можно ли одной командой сделать сброс?


 
ANB ©   (2006-09-05 16:49) [6]


> Пробовал Open. Тот же эффект. Я использую BDE.

Вот тута проблема и порылась.


 
Val ©   (2006-09-05 17:04) [7]

код покажите.


 
evvcom ©   (2006-09-05 17:09) [8]

> [5] pic509 ©   (05.09.06 16:47)
> Но параметр №1 каким-то образом сохраняется!?

Как это "каким-то образом"? А кто его оттуда вычищал?

> Как сделать инициализацию (сброс) входных параметров ХП.
> Делать влоб ...ParamByName("name").value=null мне кажется
> не красиво

Напиши свою процедурину для очистки всех параметров и вызывай при необходимости. В ней цикл по всем и Params[i].Clear;


 
pic509 ©   (2006-09-05 17:12) [9]

Сделал так. Все работает. Спасибо!!!



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

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

Наверх




Память: 0.49 MB
Время: 0.056 c
15-1160438404
vidiv
2006-10-10 04:00
2006.10.29
Есть какая нить програмка для визуализации механических процессов


2-1161071989
sanich
2006-10-17 11:59
2006.10.29
Как перехватить удаление записи у TDBNavigator


2-1160909875
Lexa11_2002
2006-10-15 14:57
2006.10.29
Paradox и сложные запросы


3-1156856047
bmp2006
2006-08-29 16:54
2006.10.29
Сложный запрос


3-1157437612
svt
2006-09-05 10:26
2006.10.29
!!!!ADOStoredProc1 !!!!Объясните, пожайлуста, где я ошибся