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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.011 c
14-51415
Layner
2003-09-26 15:13
2003.10.16
Есть ли комп-ты. для работы с WEB камерами на USB портах?


14-51471
Layner
2003-09-29 13:41
2003.10.16
Помогите скинуть видеопоток на диск с первоначальным сжатием


3-51078
Брат
2003-09-26 13:29
2003.10.16
Как мне указать, что поле является вычисляемым?


1-51221
Uka
2003-10-01 10:05
2003.10.16
Как подписать ActiveX?


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