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

Вниз

ClientDataSet и память?   Найти похожие ветки 

 
Max_   (2003-09-15 11:07) [0]

У меня цепочка ADOQuery->DataSetProvider->ClientDataSet->DataSource->DBGrid
Пишу динамически Select"ы и частично данные кешируются, когда делаю Fetch! Через некоторое время увидел, что комп начал тормозить! Включил TaskManager и увидел, что моя прога занимает не 3Mb, а 160Mb :( Начал эксперементировать и понял, что ClientDataSet не освобождает локальный кэш при запуске нового запроса! Я уж подумал: может это ADOQuery виноват, но там СursorType ыставлен в clUseServer! ClientDataSet закрываю перед каждым запросом, ADOQuery- тоже! Пробывал ClientDataSet1.Data:=null - не помогает! Как быть?


 
Max_   (2003-09-15 11:42) [1]

Не уже ли никто помочь не может? :)


 
Arm79   (2003-09-15 13:53) [2]

А пробовал ClientDataSet1.ApplayUpdates(-1)?


 
Max_   (2003-09-15 13:59) [3]

Нет не пробывал! ClientDataSet1.ApplayUpdates(-1) случайно не Delt"у посылает на сервер?


 
Arm79   (2003-09-15 14:04) [4]

Посылает все обновленные записи на сервер. -1 - количество допустимых ошибок, те в нашем случае ни одной. А так все держиться в локальном кэше.


 
Max_   (2003-09-15 14:17) [5]

пробывал- тоже самое!


 
Arm79   (2003-09-15 14:19) [6]

Поподробнее, какая СУБД. Лучше текст проги. Можно на мыло


 
Max_   (2003-09-15 14:33) [7]

База Oracle! Цепочка ADOQuery->DataSetProvider->ClientDataSet->DataSource->DBGrid! ADOQuery и ADOConnection свойство СursorType=clUseServer!
Код самый обыкновенный:
procedure Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Memo1.Text); //я не открываю ADOQuery - //это делает Provider через ClientDataSet
ClientDataSet1.Close;
ClientDataSet1.Open;
end;


 
Arm79   (2003-09-15 14:41) [8]

1 - зачем тебе 2 кэша(ADO-шный и ClientDataSet)?
2 - Ты уверен, что СursorType=clUseServer? Посмотри в runtime


 
Max_   (2003-09-15 15:49) [9]

2 кэша тогда, когда ADO CursorType=clUseClient, а у меня один кэш- ClientDataSet! Уверен, я его в runtim"e выставляю!


 
Arm79   (2003-09-15 15:52) [10]

Зачем тебе тогда ClientDataSet, если все изменения идут на сервер?


> Уверен, я его в runtim"e выставляю

Ты проверь после открытия БД


 
Max_   (2003-09-15 16:16) [11]

ClientDataSet, что б в Grid"e данные показывать! :)


 
Arm79   (2003-09-15 16:25) [12]

Только не надо говорить, что данные от ADOQuery не отображаются! :-)


 
Max_   (2003-09-15 16:50) [13]

Taк я не говорю, что данные не отображаются! Отображаются, но только в CursorType=clUseClient (когда всё валит на клиента)


 
Arm79   (2003-09-15 18:02) [14]

Зачем мудрить. Установи на clUseClient, просто записи возвращай не все. Либо измени запрос, либо количество возвращаемых записей в св-вах компонента. Что-то типа PacketRecord или что-то в этом духе. Зачем нагрузку валить на сервер? Если упорно нужно ClientDataset, то рекомендую dbExpress.


 
Vlad   (2003-09-15 18:13) [15]

Ребяты, я точно помню, что в D5, например, даннные в дбгриде отражаются нормально с UseServer
Причем никаких апгрейдов для ADO не ставил, все было в стандартной комплектации.
Вы чё-то шутите по-моему.


 
Arm79   (2003-09-15 18:37) [16]

Я не шучу. Тоже был удивлен. А насчет dbExpress - настоятельно рекомендую.



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

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

Наверх





Память: 0.48 MB
Время: 0.021 c
1-18329
Anatoly P
2003-09-23 18:37
2003.10.06
биты в Integer


7-18661
hawkins
2003-07-22 17:52
2003.10.06
Подскажите, как сделать программу доступной из командной


3-18243
SerKom
2003-09-16 14:00
2003.10.06
Почему не проходят агрегируемые функции в запросе TADOQuery


3-18221
yuray76
2003-09-15 17:08
2003.10.06
Количество коннектов к базе Interbase...


14-18614
lak
2003-09-17 17:13
2003.10.06
отдохните от рекламы





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