Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.16;
Скачать: CL | DM;

Вниз

DbGreed... Как сохранить данные?   Найти похожие ветки 

 
RomDron   (2003-09-24 16:56) [0]

При заполнении DBgreed с помощью хранимой процедуры (ADO) мы устанавливаем соединение и получаем данные. Но когда выставляем Active=false то Dbgreed очищается. Нельзя-ли этого избежать? К примеру я хочу отключится от базы но данные то в кэше хранятся? Почему нельзя ими воспользоваться? (Конечно стандартный Greed показывает токо часть данных, но во первых пусть хоть эту часть, а во вторых в некоторых нестандартных компонентах в кэш Greed`а можно скинуть все данные).


 
Vlad   (2003-09-24 17:01) [1]

Кто нибудь слышал о каком нибудь кэше в DBGride ? Или я чего-то упустил...
Данные можно скинуть в ClientDataSet, например.


 
Плохиш_   (2003-09-24 17:04) [2]

2RomDron © (24.09.03 16:56)

Ну так и сделай свой собственный нестандартный компонент


 
RomDron   (2003-09-24 17:06) [3]

Как я предполагал если Grid заполняется, то явно в кэш (Куда-же еще??).
А пример с ClientDataSet можно?


 
RomDron   (2003-09-24 17:07) [4]

Плохиш_ : Так значит стандартными средствами никак?


 
stud   (2003-09-24 17:07) [5]

а зачем aсtive=false?? если нужно отображать данные?


 
RomDron   (2003-09-24 17:08) [6]

Мне надо открыть соединение, получить данные в грид, закрыть соединение и просматривать полученное...


 
Vlad   (2003-09-24 17:11) [7]

>RomDron © (24.09.03 17:08) [6]
Говорю, для этих целей служит ClientDataSet. См. в хелпе, там все про него подробно описано.


 
Johnmen   (2003-09-24 17:21) [8]

>RomDron © (24.09.03 17:06) [3]
>Как я предполагал если Grid заполняется, то явно в кэш (Куда-же еще??).

Grid да, но не DBGrid. Чувствуешь разницу ? :)


 
RomDron   (2003-09-24 17:29) [9]

Спасибо!! А по ClientDataSet на русском описаница нету? Что-то его то я из внимания упустил. Как-то не пользовался никогда!


 
MsGuns   (2003-09-24 18:16) [10]

Дай датасету DisableControls и в гриде ничего не будет меняться


 
Vlad   (2003-09-24 18:27) [11]

>MsGuns © (24.09.03 18:16) [10]
Мда... только с данными то как работать потом ?


 
Alex_Raider   (2003-09-24 19:42) [12]

Вообще-то,
Cached Updates := true;

но....


 
MsGuns   (2003-09-24 19:52) [13]

>Vlad © (24.09.03 18:27) [11]
>>MsGuns © (24.09.03 18:16) [10]
>Мда... только с данными то как работать потом ?

Еще раз перечитал сабж внимательно. И не нашел там даже намека но то, что данные в НД (ну, гриде, блин !) должны редактиться !


 
RomDron   (2003-09-25 09:04) [14]

Данные в гриде НЕ ДОЛЖНЫ редактироваться (в гриде)!!! Все изменения происходят в своих формах с помощью StoredProc!! В том-то и дело! Необходимо только просмотр и выбор конкретной позиции.


 
Anatoly Podgoretsky   (2003-09-25 09:46) [15]

MsGuns © (24.09.03 19:52) [13]
И не найдешь, поскульку прямо сказано другое, просматириваться


 
Vlad   (2003-09-25 10:02) [16]

>Необходимо только просмотр и выбор конкретной позиции
DisableControls уже не подходит.
Короче. На русском документацию нигде не встречал, но кратко опишу:
Берешь и кидаешь на форму следующие компоненты:
Query->DataSetProvider->ClientDataSet->DataSource->DBGrid
Написано в том порядке, в каком компоненты подключать к друг другу.
Затем делаешь ClientDataSet.Active:=true и будет тебе счастье!
Query при этом останется закрыт, а данные будут сидеть, как ты говоришь, в кэше, называемом TClientDataSet и грид будет их отображать.


 
Delirium   (2003-09-25 11:56) [17]

"...Но когда выставляем Active=false то Dbgreed очищается..." -
если работаешь с ADO, то чтобы оставить активный RecordSet и разорвать соединение с сервером в Delphi достаточно сделать так:

...
ADOQuery1.Open;
ADOQuery1.Connection:=nil;
...


 
Vlad   (2003-09-25 12:04) [18]

>Delirium © (25.09.03 11:56) [17]
Интересно, никогда не пробовал, но подозреваю что в таком случае CacheSize нужно устанавливать такой, чтоб фетчились сразу все записи. А иначе туго придется :)


 
RomDron   (2003-09-25 12:12) [19]

Может заодно подскажите как подключить DataSetProvider->ClientDataSet ? Что-то я не найду где..


 
Vlad   (2003-09-25 12:14) [20]

У ClientDataSet есть проперть такая, ProviderName называется


 
Delirium   (2003-09-25 12:15) [21]

"CacheSize нужно устанавливать такой, чтоб фетчились сразу все записи. А иначе туго придется :)" - ничего подобного, в момент разрыва соединения все записи локализуются в RecordSet-e не зависимо от CacheSize (я, например, всегда держу его равным 1). Главное чтобы CursorLocation был clUseClient.


 
Vlad   (2003-09-25 12:23) [22]

>Delirium © (25.09.03 12:15) [21]
Ну вобщем да, увеличение кэшсайза - практически тоже самое что CursorLocation = clUseClient
RomDron © - Стоит попробовать.


 
RomDron   (2003-09-25 13:36) [23]

А когда ClientDataSet переводим в Active идет обновление данных из базы?


 
Vlad   (2003-09-25 14:40) [24]

>RomDron © (25.09.03 13:36) [23]
Если сделать Close;Open(или Active:=false;Active:=true) то получешь обновленный набор данных.
PS Неужели самому проверить слабо ?


 
RomDron   (2003-09-25 14:53) [25]

> Vlad
Я проверил потому и спрашиваю. Просто получается что програмно Active в Query выставлять не надо? И ClDatSet сам открывает, обновляет и закрывает соединение при изменении его Active?


 
Vlad   (2003-09-25 15:17) [26]

>RomDron © (25.09.03 14:53) [25]
Именно так.


 
Vlad   (2003-09-25 15:20) [27]

>RomDron © (25.09.03 14:53) [25]
Только не путай, Query конечно закрывается, а соединение с базой данных при этом остается открытым.



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

Текущий архив: 2003.10.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
3-51071
Vlad
2003-09-25 10:26
2003.10.16
Удалить дубли в таблице


3-51097
norman
2003-09-25 15:06
2003.10.16
SQL запрос - в каждой строке разность полей двух соседних записей


14-51482
Митяй
2003-09-28 17:17
2003.10.16
И всё-таки какой тип БД выбрать....


14-51432
sapsi
2003-09-25 13:24
2003.10.16
Ремонт квартиры


14-51456
Brahman
2003-09-29 17:25
2003.10.16
Перевоплощение:)





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