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

Вниз

ADOStoredProc   Найти похожие ветки 

 
ShooRoop   (2002-11-15 15:20) [0]

Уважаемые мастера, возникла следующая проблема: имеется ADOStoredProc, возвращающий какой-то DataSet, формирование которого происходит достаточно длительное время (~1 минуту) (если проверить его в Query Analyzer), при попытке открыть ADOStoredProc в Делфи выдается ошибка "Время ожидания истекло" и, естественно, никакого датасета я не получаю. Что нужно изменить для получения нормального результата? Благодарю.


 
Андрей Прокофьев ©   (2002-11-15 15:22) [1]

ADOStoredProc.CommandTimeOut


 
ShooRoop   (2002-11-15 15:29) [2]

ADOConnection.CommandTimeOut, увы, не помогает, как его ни увеличивай (даже до 10000). Та же ошибка.


 
sniknik ©   (2002-11-15 15:53) [3]

D6 + апдейты ADO самое простое решение проблемы, в 5 это известный глюк. По моему даже апдейтами не лечится. Но можно модуль ADODB поправить.


 
ShooRoop   (2002-11-15 15:55) [4]

Прекрасно. А каким образом поправить? Или, может, где-то есть исправленный?


 
sniknik ©   (2002-11-15 16:03) [5]

включи модуль в проект
и поправь
property CommandTimeout: Integer read GetCommandTimeout write SetCommandTimeout default 60;
default -ное значение на желаемое
После надо перекомпилировать проект


 
ShooRoop   (2002-11-15 16:49) [6]

To sniknik:
Абсолютно ничего не изменилось, к сожалению!


 
sniknik ©   (2002-11-15 21:55) [7]

проверь что у тебя в визуальном обьекте стоит.
(в идеале если dcu заменить то при ложении их на форму уже 60сек ,как у меня, стоять будет)
и проверь как присваивается (трасировкой)
процедура ADODB
procedure TADOConnection.SetCommandTimeout(const Value: Integer);
begin
ConnectionObject.CommandTimeOut := Value;
end;
поставь точку останова здесь, неправильно подключен не даст трассировать.

(предупреждал апдейты проще :о))


 
BlackTiger   (2002-11-15 23:04) [8]

Эти несчастные таймуаты прописывать нужно в нескольких местах для надежности.
1. в самом ConnectionString"e (там их два - General и еще какой-то)
2. в ADOConnection (ConnectionTimeout, CommandTimeout (не уверен, есть ли он, не могу сейчас проверить))
3. в Query/SP (CommandTimeout)

Сам я TADOStoredProc никогда не пользуюсь. Предпочитаю вызывать "EXEC sp_lalala()" через TADOQuery - там установки таймаутов работают, проверено.


 
ShooRoop   (2002-11-18 11:23) [9]

2 BlackTiger:
Можно чуть поподробнее, каким образом я могу через TADOQuery вызвать хранимую процедуру. Если я правильно понимаю, я прописываю в TADOQuery.SQL "EXEC sp_lalala()" а потом делаю TADOQuery.ExecSQL? Или как-то иначе?


 
asmith   (2002-11-18 12:37) [10]

Не TADOQuery.ExecSQL, а TADOQuery.Open, поскольку возвращается курсор.


 
ShooRoop   (2002-11-18 14:59) [11]

Увы, ничего не помогает. Проходит ~30 секунд и опять ошибка "Время ожидания истекло". Кстати, у TADOQuery я не нашел праперти CommandTimeout. Может, у кого-нибудь есть еще какие-то соображения, буду очень признателен.


 
sniknik ©   (2002-11-18 15:25) [12]

Самое первое и есть верное. D6 + апдейты ADO. Или попробуй на 5 апдейты. (хотя вроде говорили не помогает в 5х)

> Кстати, у TADOQuery я не нашел праперти CommandTimeout.
и тем не менее он там есть по крайней мере в 6 дельфях.


 
Icehand   (2002-11-19 13:13) [13]

Народ, поскольку речь зашла о хранимых процедурах, то хочу обратится к вам со своей проблемой. У меня есть например хранимая процедура в Оракле, например Select * from a.
Как мне передать результат в DBGrid? Я использую ADOStoredProc.


 
BoxTer ©   (2002-11-19 13:24) [14]

>Icehand
вешаешь на SP DataSource и указываешь ее как источник данных для Грида. Потом Делаешь Active=True у SP руками или программно, и все...



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

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

Наверх




Память: 0.49 MB
Время: 0.016 c
1-14528
MoorCat
2002-11-26 15:01
2002.12.05
Шрифты в Memo.


3-14401
STANT
2002-11-15 16:48
2002.12.05
Можно ли закрасить определенным цветом


7-14848
Aric
2002-10-02 21:14
2002.12.05
Глобальный хук на мышку


14-14820
hedgehoge
2002-11-16 12:30
2002.12.05
BooksOnLine


3-14379
Alexey Goosev
2002-11-19 22:47
2002.12.05
Только не смейтесь - поиск в мемо-поле