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

Вниз

CachedUpdate на модифицированную запись   Найти похожие ветки 

 
Selax   (2002-08-15 07:26) [0]

На автомате заносятся только вставленные или удаленные записи
Как занести в кэш измененную запись?(не сильно извращаясь)
Потому как если я только изменяю записи,в кэш они не заносятся
и при переходе по записям изменения теряются,а постоянно делать applyUpdates и commit не охота,да думаю и не красиво :(
Использую стандартные DataBase,Query,DBGrid и DBNavigator


 
Johnmen   (2002-08-15 09:27) [1]

>...при переходе по записям изменения теряются...

Вот этого не должно быть...Что-то не так делаешь...


 
Black Cat   (2002-08-15 10:03) [2]

Именно так и должно быть (для detail), если CachedUpdates=TRUE. См. хелп для UpdatesPending.


 
Selax   (2002-08-15 12:19) [3]

Тогда как быть?
Не хотелось бы сохранять каждую запись при переходе.
Уважаемые мастера подскажите какую-нибудь идею,плз
Не писать же самому полностью кэш,для такой мелочи,
должны же быть какие-нибудь стандартные средства для этого


 
Johnmen   (2002-08-15 12:25) [4]

Именно для того и существует стандартное кеширование изменений, чтобы вносить их в неск.записей и потом целиком принимать или нет. В процессе перехода по записям изменения не должны теряться ! Если это не так - то ошибка где-то в написанном тобой коде...


 
Selax   (2002-08-15 13:29) [5]

Есть главная и подчиненная таблицы. У подчиненной в Query2.datasourse=DataSourse1 от Квери главной таблицы
Query2.SQL=select * from table where id=:id
Когда я перехожу по записям в главной таблице в подчиненной отображаются связанные записи.
При изменении (не добавления или удаления!) записи при переходе в главной таблице ,эти изменения теряются
Предполагаю,что при переходе Query2 просто переоткрывается,поэтому записи теряются
Есть идеи как это реализовать,чтобы не сохранять каждую запись при переходе,а все изменения по нажатию кнопки?
(хелп по UpdatesPending просмотрел не раз, но умные мысли не пришли :( )


 
Johnmen   (2002-08-15 13:37) [6]

>Предполагаю,что при переходе Query2 просто
>переоткрывается,поэтому записи теряются

Именно поэтому !!! Перед переходом делай ApplyUpdate.
Перед редактированием всего стартуй транзацию, после всех изменений (напр.по нажатию кнопы) подтверждай тр-ию или откатывай.


 
Selax   (2002-08-16 08:41) [7]


> Именно поэтому !!! Перед переходом делай ApplyUpdate.

Пробовал делать,но без commit"a записи все равно теряются.

> Перед редактированием всего стартуй транзацию, после всех
> изменений (напр.по нажатию кнопы) подтверждай тр-ию или
> откатывай.

Попробую...


 
Black Cat   (2002-08-16 09:26) [8]

Делай как в хелпе:
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
Database1.Commit; {on success, commit the changes};
except
Database1.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;

Но нафига вообще связываться с кэшем?


 
Johnmen   (2002-08-16 09:47) [9]

>Black Cat © (16.08.02 09:26)

Это не тот случай...Не годится...


 
Black Cat   (2002-08-16 10:16) [10]

Почему не тот? Выполнять этот код КАЖДЫЙ РАЗ перед переходом и все.


 
Johnmen   (2002-08-16 10:21) [11]

>Black Cat © (16.08.02 10:16)
>Почему не тот? Выполнять этот код КАЖДЫЙ РАЗ перед переходом и
>все.

Тогда да...:)



 
Selax   (2002-08-16 14:24) [12]

До этого я и сам додумался :(
Но вся трабла в том,чтобы при переходе commit"a не было,а был он при нажатии на кнопку.
Только тогда все измененные записи заносились в базу.
А то получается,что записи заносятся в базу без желания пользователя(то бишь постоянно при переходе по записям)
А если ламер просто балуется или изучает прогу - все его изменения нарушат базу,т.е. вместо нормальных данных идет лажа.
Есть идеи реализации этой траблы?



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

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

Наверх





Память: 0.47 MB
Время: 0.007 c
1-14046
Shrek
2002-08-26 17:16
2002.09.05
BDE


14-14218
Basic
2002-08-08 10:20
2002.09.05
Кто знает как работать с UUCP


1-14106
den_dnepr
2002-08-23 17:11
2002.09.05
Version Info


6-14203
Олеся
2002-06-25 23:40
2002.09.05
Вопрос мастерам...


3-13873
Grrey
2002-08-16 14:21
2002.09.05
Почему-то не работают UDF!





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