Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранимая процедура! как отловить завершение 
V
    Опции темы
DDX
  Дата 13.2.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



D7/ADO/SQL Server 2000
хранимка не возвращает набора данных, вызываю через ExecProc, только работает порядочное время.

Вопрос: как отследить, что она уже отработала?? дождаться окончания нужно обязательно и дать юзеру возможность работать дальше.
и можно ли сделать какой-то прогрессбар выполнения?

Это сообщение отредактировал(а) DDX - 13.2.2006, 14:48
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
DimW
Дата 13.2.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Цитата(DDX @ 13.2.2006, 14:16 Найти цитируемый пост)
как отследить, что она уже отработала??


Цитата(DDX @ 13.2.2006, 14:16 Найти цитируемый пост)
только работает порядочное время.

ну а откуда ты знаешь что она столько работает? значит видно когда ана отработала....


Цитата(DDX @ 13.2.2006, 14:16 Найти цитируемый пост)
хранимка не возвращает набора данных

ну так процедура и неможет возвратить набор данных.

на счет прогрес бара:
на мой взгляд единственный способ это реализовать -
создаешь таблицу с полями:
id_session|progress_num
где id_session -идентификатор сесии, а progress_num процентное выполнение процедуры...

в процессе выполнения процедуры апдейтишь и коммитишь свою таблицу и из другой сесии селектишь из ее поле progress_num
Код

SELECT COUNT(progress_num) 
FROM MY_TABLE
WHERE id_session = MY_SESSION

и присваеваешь это эначение прогрес бару.

но нужно учесть что эти два процесса должны работать параллельно в разных потоках, но это уже гругая тема!!!

Это сообщение отредактировал(а) DimW - 13.2.2006, 15:31
PM MAIL ICQ   Вверх
DDX
Дата 13.2.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



Цитата(DimW @ 13.2.2006, 15:29 Найти цитируемый пост)
Цитата(DDX @ 13.2.2006, 14:16 )
только работает порядочное время.


ну а откуда ты знаешь что она столько работает? значит видно когда ана отработала....


запуская с тем же параметром в query analyzer. работает порядка 6-7 секунд. Но прога не ждет это время и такое ощущение, что она пресекает выполнение процедуры каким-то образом, так как данные в итоге остаются необновленными

хрен с ним, с прогрессбаром! smile эта хранимка внутри себя вызывает другую. Мне бы дождаться выполнения хранимки!

Это сообщение отредактировал(а) DDX - 13.2.2006, 15:37
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
DimW
Дата 13.2.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Цитата(DDX @ 13.2.2006, 15:34 Найти цитируемый пост)
так как данные в итоге остаются необновленными


ну раз данные не обнавленные, значит она не отробатывает?

Цитата(DDX @ 13.2.2006, 15:34 Найти цитируемый пост)
Мне бы дождаться выполнения хранимки!


а чего ждать?

ты определи точно, после вызова процедуры из твоего проекта, после окончания 6-7 сек. данные в БД меняются или нет?
PM MAIL ICQ   Вверх
DDX
Дата 13.2.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



при вызове из дельфи - нет
при вызове напрямую - да
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
DimW
Дата 13.2.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



DDX, тогда я непонял что отслеживать если оно и так не вызывается?

может вопрос в том, что у тебя не получается с помошью ExecProc вызвать процедуру?
PM MAIL ICQ   Вверх
DDX
Дата 14.2.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



хранимка вызывается! профайлер показывает, что она запустилась и начала работу
но почему-то она отваливается, не отработав до конца!
хотя из под квери аналайзера под тем же логином все работает замечательно
Добавлено @ 14:20
всё!! нашел!! ураа!!!
всего-то знаете в чем дело? в хранимке был невинный оператор print, выводящий сообщения в окно сообщений!
вот из-за него-то всё и отваливалось каким- то хреном!
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.