Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Timeout и Depphi ...
|
|||
|---|---|---|---|
|
#18+
Проблема у меня следующая : Одна из SP которая возвращает Dataset в Dephi выполняеться около 45сек если ее запустить из QA, но в Delphi постоянно вылетает Timeout несмотря на то что CommandTimeOut установленн на 3 мин, при этом другие продцедуры которые выполняються около двух менут никакой TimeOut не выбрасывают ... Возможно это связанно именно с типом запроса, в нем происходит формирования не очень большой таблицы но все вычисляеться с помощью сложных подзапросов которые требуют много времяни на выполнение) другие же SP которые выполняюьтся коколо двух минут возвращают просто очень большие наборы данных но там нет никаких медленных подзапросов) Восможно SQL сервер сам посылает в delphi какоето сообщение если запрос выполняеться дольше чем какойто внутренний timeOut ? а в случае с большими наборами данных этого не происходит ткт большую часть времяни занимает не запрос а пересылка данных ... P.S. Использую MS SQL 7.0 и ADOExpress ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2001, 08:08 |
|
||
|
Timeout и Depphi ...
|
|||
|---|---|---|---|
|
#18+
Можно немного конкретики? CommandTimeout для какого компонента (TADOConnection)? Через какой компонент открывается DataSet (TADOCommand or TADOStoredProc)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2001, 10:12 |
|
||
|
Timeout и Depphi ...
|
|||
|---|---|---|---|
|
#18+
А если без конкретики, то получается следующее. Если ты установил CommandTimeout для TADOConnection, то эта установка влияет только на timeout для инструкций T-SQL, выполняемых с помощью метода TADOConnection.Execute, а не для DataSet компонентов (TADOQuery, TADOStoredProc), привязанных к TADOConnection. Если ты открываеш набор через TADOStoredProc (или TADOQuery), то для этих компонентов Borland ограничил timeout 30 секундами, причем сделал это свойство protected на уровне предка (TCustomADODataSet), т.е. через эти компоненты можно работать с инструкциями, которые требуют не более 30 секунд на выполнение на сервере. Единственный выход, использовать компонент TADODataSet, у которого свойство CommandTimeout вытащено в раздел published. Надеюсь, что помог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2001, 10:39 |
|
||
|
Timeout и Depphi ...
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ ... ато я бы еще долго ломал голову TADODataSet у которого CommandTimeout вытащенно в раздел published, это значит надо создать свой компонент, а много там менять придеться ? у небя случаем такого компонента (измененного) нет ? используя я ADOStoredProc и параметры использую .... а если выполнять через TADOConnection.Execute как мне настроить поля, форматирование и т.д. для возвращаемого Dataset-а ? надобудет их создавать динамически в коде ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2001, 11:00 |
|
||
|
Timeout и Depphi ...
|
|||
|---|---|---|---|
|
#18+
TADODataSet компонент есть на панели компонентов, бери его и ложи на форму. Ничего самому создавать не надо. А published значит, что свойство доступно для редактирования через Object Inspector. И так, ложишь компонент на форму, устанавливаешь свойства CommandText = cmdStoredProc, Connection = твой TADOConnection. При этом редактор свойства CommandText принимает вид поля со списком, в котором можно выбрать нужную ХП. При этом заполнится свойство Parameters. И наконец устанавливаеш CommandTimeout в нужное тебе значение. Все должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2001, 11:53 |
|
||
|
Timeout и Depphi ...
|
|||
|---|---|---|---|
|
#18+
Например так: в самом верху модуля опишите новый тип type TADOStoredProcCracker = Class(TADOStoredProc); перед выполнением процедуры сделайте: TADOStoredProcCracker(ADOStoredProc1).CommandTimeout:=600; // в секундах end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2001, 15:18 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32014055&tid=1825549]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 337ms |

| 0 / 0 |
