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

Вниз

ADOQuery.SQL.Add   Найти похожие ветки 

 
MakNik ©   (2004-03-11 14:48) [0]

Может кто знает в чем причина медленной работы ADOQuery.SQL.Add("...")? Проблема в том, что на некоторых компах эта операция очень тормозит. Как можно обойти этот глюк?


 
Vlad ©   (2004-03-11 14:53) [1]


> MakNik ©   (11.03.04 14:48)  

Уверен что именно эта строчка - причина торможения, а не Open какой нибудь или ExecSQL ?


 
V-A-V ©   (2004-03-11 15:23) [2]

...
 ADOQuery.Close;
 ADOQuery.SQL.Text:= "Select Field1, Field2 From MyTable Where ...";
 ADOQuery.Open;
...

попробу так.


 
VAleksey ©   (2004-03-11 15:28) [3]

Тормозит не эта операция.


 
V-A-V ©   (2004-03-11 15:33) [4]

Да я знаю, что не эта...


 
MakNik ©   (2004-03-11 15:39) [5]

Отрывок кода:
...
While Not ADO.Eof do
begin
 ADOQuery.SQL.Add("  Update ...");
 ADOQuery.SQL.Add("...");
 ...
ADO.Next;
end;
ADOQuery.ExecSQL;


То, что тормозит на Add, это проверено (вставлял логирование)... Интересно, что время выполнения этой операции возрастает от сотых секунда в начале цикла, до 4 секунд после выполнения последней итерации...


 
V-A-V ©   (2004-03-11 15:47) [6]

А ADO это что какая-то таблица?
Eсли это так то это изврат, бегать по таблице и составлять неведая откуда текст запроса для ADOQuery.


 
MakNik ©   (2004-03-11 15:53) [7]


> V-A-V ©  

... меня больше интересует почему Add медленно работает...


 
sniknik ©   (2004-03-11 15:55) [8]

глюк в точках, на точках всегда тормозит (время уходит в точку), чем их больше тем больше времени уходит, избавься от них.

это даже не бред.

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


 
V-A-V ©   (2004-03-11 15:58) [9]

sniknik ©

браво...


 
VAleksey ©   (2004-03-11 16:01) [10]


> sniknik ©   (11.03.04 15:55) [8]

5 баллов.
Что сказать - мастер. Очень похоже...


 
V-A-V ©   (2004-03-11 16:05) [11]

Похоже MakNik никогда не выкидывает мусор из "корзины", но онаже не бездонная....


 
MakNik ©   (2004-03-11 16:53) [12]

... да нет, дело какраз в ADOQuery!!! точнее в ADOQuery.SQL (типа TStrings)... если накапливать текст скрипта в отдельной переменной типа TStrings, то все работает быстро, а вот если работать непосредственно с ADOQuery.SQL... , то - тормоз...
(... а "точки" и скрипт я привел как пример того, где тормозит, а не как пример алгоритмизации... )


 
sniknik ©   (2004-03-11 17:19) [13]

есть такая полезная галочка в опциях проекта USE Debug DCUs, поставь ее, и поставь брейпоинт на ADOQuery.SQL.Add("  Update ..."); дальше дело техники по остановке нажимаем F7 и попадаем в..., нет не в метод добавления строки, а в метод GetSQL, потому как SQL property типа TStrings, так все и происходит сначало получение списка после добавили строку, следующее - получение списка (увеличивщегося) добавление строки ....
но переделывать компонент не нужно нужно сменить логику, чтобы не закачивать туда по n-строк (нет n мало, m-строк :), а пользоваться параметрами к примеру и одноразово внесенными запросами. (и не ADOQuery а ADODataSet/ADOCommand)



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

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

Наверх




Память: 0.47 MB
Время: 0.042 c
7-1076237725
I_V_N_I_S_H
2004-02-08 13:55
2004.04.11
Перехват клавиш


14-1082031385
p0tia
2004-04-15 16:16
2004.04.11
Переменная time


3-1078931874
Anarki
2004-03-10 18:17
2004.04.11
ADOQuery - проблемы


1-1080079870
GetIt
2004-03-24 01:11
2004.04.11
Excel


14-1082051532
pepers
2004-04-15 21:52
2004.04.11
Разработка приложения





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