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

Вниз

Сохранение курсоров в TDBGrid   Найти похожие ветки 

 
dmitry_12_08_73 ©   (2008-10-31 12:39) [0]

Каким способом лучше сохранять текущий курсор в TDBGrid после внесений изменений в таблицу процедурами INSERT INTO..., DELETE FROM...,UPDATE...SSET... и последующим выполнением ExecSQL. С помощью TBookMark это не совсем удобно


 
Правильный$Вася   (2008-10-31 12:58) [1]

Locate по униальному ключу в наборе данных
т.к. после переоткрытия датасета букмарки от предыдущего использовать нельзя


 
dmitry_12_08_73 ©   (2008-10-31 13:00) [2]

а в случае после использования DELETE FROM... как быть?


 
Johnmen ©   (2008-10-31 13:28) [3]

Смещение назад(вперед), потом [2], потом [1].

PS
При использовании компонент прямого доступа вся эта смешная суета не нужна...


 
dmitry_12_08_73 ©   (2008-10-31 13:58) [4]

подскажите, плиз, какого именно компонента прямого доступа


 
Сергей М. ©   (2008-10-31 14:18) [5]


> С помощью TBookMark это не совсем удобно


Зато верно и универсально.
А в чем, собссно, заключается неудобство ?


 
MsGuns ©   (2008-10-31 15:53) [6]

>Johnmen ©   (31.10.08 13:28) [3]
>При использовании компонент прямого доступа вся эта смешная суета не нужна...

Ну да, вместо смешной суеты будут несмешные эффекты вроде того, что будут видны "убитые" кем-то записи и, наоборот, не видны добавленные.

>Сергей М. ©   (31.10.08 14:18) [5]
>Зато верно и универсально.

а) неверно
б) не универсально

>А в чем, собссно, заключается неудобство ?

В том, что после переоткрытия НД букмарки теряют валидность


 
Johnmen ©   (2008-10-31 16:00) [7]


> MsGuns ©   (31.10.08 15:53) [6]
> Ну да, вместо смешной суеты будут несмешные эффекты вроде того,
>  что будут видны "убитые" кем-то записи и, наоборот, не видны добавленные.

С чего ты это взял???


 
Сергей М. ©   (2008-10-31 16:00) [8]


> MsGuns ©   (31.10.08 15:53) [6]


Тогда давай уж подробно по обоим пунктам, с аргументами ессно ..


> после переоткрытия НД букмарки теряют валидность


А никто и не ведет речь про переоткрытие.


 
MsGuns ©   (2008-11-01 15:47) [9]

>Сергей М. ©   (31.10.08 16:00) [8]
>Тогда давай уж подробно по обоим пунктам, с аргументами ессно ..

Будь ласка:

а) неверно

Неверно потому, что после любого обновления НД, влекущего за собою изменения в таблице, содержащаяся в нем информация не будет достоверна пока не будет перечитана с сервера

б) не универсально

Не годится для многих случаях, например при условии серверного курсора или при однонаправленных курсорах


 
Сергей М. ©   (2008-11-01 16:15) [10]


> MsGuns ©   (01.11.08 15:47) [9]


> после любого обновления НД, влекущего за собою изменения
> в таблице, содержащаяся в нем информация не будет достоверна
> пока не будет перечитана с сервера
>


Ну, положим, не любого, а касающегося только записей, на которые перед обновлением в НД были сделаны закладки


> или при однонаправленных курсорах


Здесь да, согласен.
Но при этом о закладках вообще не может идти речь.


 
Сергей М. ©   (2008-11-01 16:15) [11]


> MsGuns ©   (01.11.08 15:47) [9]


> после любого обновления НД, влекущего за собою изменения
> в таблице, содержащаяся в нем информация не будет достоверна
> пока не будет перечитана с сервера
>


Ну, положим, не любого, а касающегося только записей, на которые перед обновлением в НД были сделаны закладки


> или при однонаправленных курсорах


Здесь да, согласен.
Но при этом о закладках вообще не может идти речь.


 
MsGuns ©   (2008-11-01 19:18) [12]

>Сергей М. ©   (01.11.08 16:15) [10]
>Ну, положим, не любого, а касающегося только записей, на которые перед обновлением в НД были сделаны закладки

 Совершенно не колышит, была ли сделана закладка или нет на записи, которую но момент "локального" рефреша физически удалили из таблицы. Т.е. в сетке пользователя она отображается, но на самом деле ее уже нет в таблице. Причем здесь букмарки ?


 
Сергей М. ©   (2008-11-01 21:17) [13]


> MsGuns ©   (01.11.08 19:18) [12]


Что ты подразумеваешь под локальным рефрешем ?


 
MsGuns ©   (2008-11-02 00:05) [14]

Из справки по TDataSet.Refresh:

Re-fetches data from the database to update a dataset’s view of data.

procedure Refresh;

Call Refresh to ensure that an application has the latest data from a database. For example, when an application turns off filtering for a dataset, it should immediately call Refresh to display all records in the dataset, not just those that used to meet the filter condition.

Note: The Refresh method does not work for all TDataSet descendants. In particular, TQuery components do not support the Refresh method if the query is not “live”. To refresh a static TQuery, close and reopen the dataset.

TDataSet generates a BeforeRefresh event before refreshing the records and an AfterRefresh event afterwards.

Note: Most datasets try to maintain the current record position when you call refresh. However, this is not always possible. For example, the current record may have been deleted from the server by another user. Unidirectional datasets have no mechanism for locating the current record after a refresh, and always move back to the first record.

Warning: Unidirectional datasets refresh the data by closing and reopening the cursor. This can have unintended side effects if, for example, you have code in the BeforeClose, AfterClose, BeforeOpen, or AfterOpen event handlers.


 
GRAND25   (2008-11-05 10:13) [15]

FIBPlus юзать надоть, а не приблуды всякие. FullRefresh там неимоверно рулить!



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

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

Наверх





Память: 0.49 MB
Время: 0.004 c
6-1205160643
alexm_hs
2008-03-10 17:50
2009.08.09
Как работать с MIB-файлами?


15-1244233802
Юрий
2009-06-06 00:30
2009.08.09
С днем рождения ! 6 июня 2009 суббота


15-1244752206
Юрий
2009-06-12 00:30
2009.08.09
С днем рождения ! 12 июня 2009 пятница


15-1244207036
DeadMeat
2009-06-05 17:03
2009.08.09
Каталогизатор фильмов


6-1205463868
prodex
2008-03-14 06:04
2009.08.09
Асинхронные сокеты





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