Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
BJValentine   (2003-04-25 20:09) [0]

Ребята, замучился! Запрос выполняется 5 минут. Как мне сделать, чтобы увеличить период ожидания?


 
sniknik   (2003-04-25 23:41) [1]

перейти на 6-дельфи. в пятом это нудно и по "хакерски" достигается правкой модуля ADODB. (и не у всех получается, однажды пытался тут обьяснить... упарился).

если не можеш сменить дельфю, подумай над следующим - сделать запрос асинхронно выполняемым... таймаута не будет (только за окончанием нужно следить из события, т.е. чуть по другому, а так одни плюсы).


 
Shuric   (2003-04-26 00:05) [2]

Может не по теме, но по-моему иногда не обязательно возвращать результат в ADOQuery, например. Может, ошибаюсь, но, выполняя запрос на серверном приложении (не знаю Вашей структуры) можно вернуть блок, который будет расцениваться как результат, достаточно написать сервер и пару процедурок в нем. Если нужно уточню...


 
BJValentine   (2003-04-26 10:46) [3]

В форуме уже был этот вопрос и удачный ответ, только было это давно и я не могу найти. Я помню по поводу модуля ADODB. Да, там как то странно этот TimeOut устанавливается, но он сто пудово устанавливается и работает! Может всё-таки ктото помнит, как это делается?


 
sniknik   (2003-04-26 17:37) [4]

> но он сто пудово устанавливается и работает!
да это я знаю, сам делал, вариантов на самом деле несколько
поменять у компонента дефаултное значение, чтобы он его при создании устанавливал
TADOCommand = class(TComponent)
....
property CommandTimeout: Integer read GetCommandTimeOut write SetCommandTimeOut default 30;

или поправить
procedure TADOCommand.SetCommandTimeOut(const Value: Integer);
begin
CommandObject.CommandTimeout := Value;
end;
(в пятом там по моему не у компонента менялось свойство а у обертки непомню точно)

или при вызове напрямую
function TADOCommand.Execute(var RecordsAffected: Integer;
const Parameters: OleVariant): _Recordset;
var
VarRecsAffected: OleVariant;
begin
SetConnectionFlag(cfExecute, True);
try
Initialize;
CommandObject.CommandTimeout:= 0; //0 - время неограничено
Result := CommandObject.Execute(VarRecsAffected, Parameters,
Integer(CommandObject.CommandType) + ExecuteOptionsToOrd(FExecuteOptions));
RecordsAffected := VarRecsAffected;
finally
SetConnectionFlag(cfExecute, False);
end;
end;

в общем смысл понятен (?) главное поменять значение не у обертки а у оборачиваемого компонента, перед выполнением им комманды. естественно модуль ADODB нужно подключить к проэкту, чтобы его код подключался а не их дельфевского Lib.

ну или можно самому ADO подключить (импорт Type Library) и его использовать (правда это муторно).

P.S. перед тем как производить какието действия попробуй все апдейты дельфей установить, может только это уже поможет .


 
wicked   (2003-04-27 03:19) [5]

странно, у меня все работало при установке свойства CommandTimeout в обертке....
правда, были установлены все апдейты - 2 шт....


 
Babay   (2003-04-28 05:39) [6]

Помница была и уменя подобная проблема.
Решил так. Я использовал ADOQuery и таймоут выставлял. Это не проходило.
Заменил ADOQuery на ADOCommand все стало Ок.
Надеюсь это твой случай...

...да сервис паки всетаки у меня стояли.



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

Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
9-59527
PaRL
2002-12-06 20:51
2003.05.19
Как перевести координаты окна в координаты OpenGL?


1-59650
sergio
2003-05-07 10:37
2003.05.19
как програму сделать сервисом?


4-59989
biocron
2003-03-18 12:49
2003.05.19
Отключить дисковод так что бы не было ошибки


14-59932
REA
2003-04-28 16:20
2003.05.19
Перебор


3-59632
Mr.Fox
2003-04-29 07:51
2003.05.19
Как узнать добавлена ли новая запись???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский