Главная страница
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.015 c
3-14403
IgorokS
2002-11-14 16:45
2002.12.05
как используя Delphi и MySQL заставить данный запрос работать?


1-14627
AndrewVolkov
2002-11-22 16:30
2002.12.05
keyPress -> CTRL, но не в onKeyPress и ему подобных???


3-14364
Calm
2002-11-19 13:30
2002.12.05
MS SQL - уведомление внешнего приложения


3-14461
Брат
2002-11-18 16:20
2002.12.05
Количество записей в таблице...


1-14629
REP
2002-11-25 07:47
2002.12.05
Композитный отчет QReport