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

Вниз

Экранный курсор crSQLWait   Найти похожие ветки 

 
Stager   (2004-07-27 15:26) [0]

В моей задаче приходится регулярно, с промежутком около 1 c, выполнять SQL-запросы через TQuery. Проблема: на время каждого запроса экранный курсор показывает часы и надпись "SQL". Длительность запросов мизерная, поэтому курсор отвратительно моргает каждую секунду. Нужно, чтобы он НЕ ИЗМЕНЯЛСЯ при запросе. Победить путем развешивания Screen.Cursor := crDefault на все возможные события TQuery не помогло. Подскажите, пожалуйста, как победить эту заразу?


 
Sandman25 ©   (2004-07-27 15:27) [1]

Для начала надо разобраться, кто и когда изменяет курсор. После этого уже можно будет начать думать :)


 
Stager   (2004-07-27 16:06) [2]

Насколько я понимаю, он изменяется где-то в дебрях стандартного Delphi-модуля DB. Попытка это отследить ни к чему полезному не привела, тем более, что буквосочетание Cursor там чаще используется для обозначения не экранного, а DB-курсора.

Подскажите, имеет ли смысл, к примеру, выполнять запрос в отдельном потоке (если, конечно, можно запретить этому потоку взаимодействовать с экраном)?


 
Sandman25 ©   (2004-07-27 16:15) [3]

Насколько я понял по трассировке, курсор изменяется в
procedure TSession.InitializeBDE;

SetCursor := (GetCurrentThreadID = MainThreadID) and (DBScreen.Cursor = dcrDefault);
 if SetCursor then
   DBScreen.Cursor := dcrHourGlass;

Получается, что если установить Screen.Cursor в, скажем, crArrow, то изменения не будет.


 
AlexSV   (2004-07-27 16:20) [4]

Database1.Session.SQLHourGlass := False ?


 
Stager   (2004-07-27 16:24) [5]

SetCursor := (GetCurrentThreadID = MainThreadID) and (DBScreen.Cursor = dcrDefault);
if SetCursor then
  DBScreen.Cursor := dcrHourGlass;


Получается, что если установить Screen.Cursor в, скажем, crArrow, то изменения не будет.


Ничего подобного. Разница между DBScreen.Cursor и Screen.Cursor достаточно велика, чтобы не считать синонимами эти буквосочетания. Из интереса проверил (ну мало ли?) - действительно не работает - моргает курсор, как прежде.


 
Stager   (2004-07-27 16:28) [6]

2 AlexSV

Database1.Session.SQLHourGlass := False

Спаситель! С меня большая виртуальная бутылка, спасибо огромное.


 
Sandman25 ©   (2004-07-27 16:43) [7]

[5] Stager   (27.07.04 16:24)

Разница между DBScreen.Cursor и Screen.Cursor достаточно велика, чтобы не считать синонимами эти буквосочетания

Из интереса посмотрел, как используется TSession.SQLHourGlass и выяснил, что Вы ошибаетесь.


 
Anatoly Podgoretsky ©   (2004-07-27 18:37) [8]

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



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

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

Наверх




Память: 0.46 MB
Время: 0.034 c
1-1091712247
AlexeyITN
2004-08-05 17:24
2004.08.22
Не меняется Button1.Font.Color Почему?


14-1091629993
ArMellon
2004-08-04 18:33
2004.08.22
Нужен хороший прокси , какой посоветуете?


6-1088062495
ashnurov
2004-06-24 11:34
2004.08.22
Передача файла по сети


14-1091096825
Baks
2004-07-29 14:27
2004.08.22
WebBrowser


1-1091729194
Hyperspeed
2004-08-05 22:06
2004.08.22
Как сделать поиск и данных и файле типа параметр:значение...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский