powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Timeout и Depphi ...
7 сообщений из 7, страница 1 из 1
Timeout и Depphi ...
    #32013985
DennisL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема у меня следующая : Одна из SP которая возвращает Dataset в Dephi выполняеться около 45сек
если ее запустить из QA, но в Delphi постоянно вылетает Timeout несмотря на то что CommandTimeOut установленн на 3 мин, при этом другие продцедуры которые выполняються около двух менут никакой TimeOut не выбрасывают ...
Возможно это связанно именно с типом запроса, в нем происходит формирования не очень большой таблицы но все вычисляеться с помощью сложных подзапросов которые требуют много времяни на выполнение)
другие же SP которые выполняюьтся коколо двух минут возвращают просто очень большие наборы данных но там нет никаких медленных подзапросов)
Восможно SQL сервер сам посылает в delphi какоето сообщение если запрос выполняеться дольше чем какойто внутренний timeOut ? а в случае с большими наборами данных этого не происходит ткт большую часть времяни занимает не запрос а пересылка данных ...
P.S. Использую MS SQL 7.0 и ADOExpress
...
Рейтинг: 0 / 0
Timeout и Depphi ...
    #32013992
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно немного конкретики?

CommandTimeout для какого компонента (TADOConnection)? Через какой компонент открывается DataSet (TADOCommand or TADOStoredProc)?
...
Рейтинг: 0 / 0
Timeout и Depphi ...
    #32013994
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если без конкретики, то получается следующее.

Если ты установил CommandTimeout для TADOConnection, то эта установка влияет только на timeout для инструкций T-SQL, выполняемых с помощью метода TADOConnection.Execute, а не для DataSet компонентов (TADOQuery, TADOStoredProc), привязанных к TADOConnection. Если ты открываеш набор через TADOStoredProc (или TADOQuery), то для этих компонентов Borland ограничил timeout 30 секундами, причем сделал это свойство protected на уровне предка (TCustomADODataSet), т.е. через эти компоненты можно работать с инструкциями, которые требуют не более 30 секунд на выполнение на сервере. Единственный выход, использовать компонент TADODataSet, у которого свойство CommandTimeout вытащено в раздел published.

Надеюсь, что помог.
...
Рейтинг: 0 / 0
Timeout и Depphi ...
    #32013997
DennisL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ ... ато я бы еще долго ломал голову
TADODataSet у которого CommandTimeout вытащенно в раздел published, это значит надо создать свой компонент, а много там менять придеться ? у небя случаем такого компонента (измененного) нет ?
используя я ADOStoredProc и параметры использую ....
а если выполнять через TADOConnection.Execute как мне настроить поля, форматирование и т.д. для возвращаемого Dataset-а ? надобудет их создавать динамически в коде ?
...
Рейтинг: 0 / 0
Timeout и Depphi ...
    #32014001
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TADODataSet компонент есть на панели компонентов, бери его и ложи на форму. Ничего самому создавать не надо. А published значит, что свойство доступно для редактирования через Object Inspector. И так, ложишь компонент на форму, устанавливаешь свойства CommandText = cmdStoredProc, Connection = твой TADOConnection. При этом редактор свойства CommandText принимает вид поля со списком, в котором можно выбрать нужную ХП. При этом заполнится свойство Parameters. И наконец устанавливаеш CommandTimeout в нужное тебе значение. Все должно работать.
...
Рейтинг: 0 / 0
Timeout и Depphi ...
    #32014023
JINX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так:

в самом верху модуля опишите новый тип
type
TADOStoredProcCracker = Class(TADOStoredProc);

перед выполнением процедуры сделайте:
TADOStoredProcCracker(ADOStoredProc1).CommandTimeout:=600; // в секундах
end;
...
Рейтинг: 0 / 0
Timeout и Depphi ...
    #32014055
DennisL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JINX использую ваш совет все работает как надо !
всем спасибо !
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Timeout и Depphi ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]