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

Вниз

DBMemo - редактирование   Найти похожие ветки 

 
Fishka   (2003-01-05 10:47) [0]

В DBMemo отображаются значения поля редактируемого запроса (хотя это, может быть, и не имеет значения).
Необходимо при изменении пользователем значения мемо-поля спросить пользователя о сохранении изменений. Как корректно узнать, что были изменения? (Например, в событии DBMemo.OnChange присвоить значение переменной или Modified можно использовать?)Если изменения не нужно сохранять, то вернуть прежнее значение поля.
Пишу что-то типа:

if Application.MessageBox("Сохранить изменения?", "Вопрос",mb_YESNO+mb_ICONEXCLAMATION)=IDNO then
begin
//Что здесь писать?
// Query2.Edit;
// Query2.FieldByName("cont").AsString:=DBMemo.Field.OldValue;
//Если пишу так, то потом при редактировании возникает сообщение об ошибке, что запись заблокирована
end;


 
Delirium^.Tremens   (2003-01-05 11:01) [1]

if mrYes then Query2.Post else Query2.Cancel (Перед постом проверить на dsEdit...)


 
Fishka   (2003-01-05 11:18) [2]

Не прокатывает. Query2.Cancel - а изменения так и остались...


 
Delirium^.Tremens   (2003-01-05 11:32) [3]

CachedUpdates := true + TUpdateSQL + ApplyUpdates ~ CancelUpdates , Close - Open


 
Fishka   (2003-01-05 11:36) [4]

Query2.CachedUpdates := true ; -так и есть.
TUpdateSQL + ApplyUpdates ~ CancelUpdates - с чем это едят?
Close - Open - ну это будет доооооооооооооолго выполняться (переоткрытие Query).
А по-другому никак?




 
Delirium^.Tremens   (2003-01-05 11:38) [5]


> Query2.CachedUpdates := true ; -так и есть.
> TUpdateSQL + ApplyUpdates ~ CancelUpdates - с чем это едят?

Если CachedUpdates уже true, то как ты эти updates сливаешь если не Query2.ApplyUpdates ?


 
Fishka   (2003-01-05 11:52) [6]

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


 
VAleksey   (2003-01-05 12:04) [7]


> Fishka

Где то уже светился этот ник. По моему гулял ты в этом форуме. Неужели не научился до сих пор ?
Итак:
1) если запрос редактируемый и св-во CachedUpdates = true, то сохранить изменения можно только вызвав метод Query1.ApplyUpdates
2) при тех же условиях отменить изменения можно методом Query1.CancelUpdates (если я не ошибаюсь)
3) не вызвав метод Query1.ApplyUpdates ты в ЛЮБОМ случае потеряешь все изменения произведенные в наборе данных запроса (может быть тут есть ограничения на мемо поля, хотя я о них вроде не слышал)
ЗЫ
Если тебе нужно чтобы пользователь В ТЕКУЩЕЙ ЗАПИСИ имел возможность отменять действия по редактированию мемо воспользуйся dbRichEdit у него есть метод undo.


 
VAleksey   (2003-01-05 12:05) [8]

PPS
Извините последнее не совсем верно так как dbMemo тоже имеет метод Undo


 
VAleksey   (2003-01-05 12:05) [9]

PPPS
Backs out all changes in the undo buffer.

procedure Undo;

Description

Call Undo to cancel all changes made to the Text property since the last call to the ClearUndo method. If ClearUndo was never called, Undo backs out all changes.

To determine whether there are any changes in the undo buffer, check the CanUndo property.


 
Fishka   (2003-01-05 12:37) [10]

VAleksey ©
Ну не приходилось мне работать с мемо-полями и редактируемыми запросами........
Да, две недели назад мною был задан вопрос о редактируемом запросе. Но TupdateSQL мне вроде не понадобился (Интересно, зачем он нужен?)
Спасибо за ответ. Попробую ApplyUpdates и CancelUpdates.




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

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

Наверх





Память: 0.46 MB
Время: 0.015 c
1-72386
dim-
2003-01-12 03:11
2003.01.23
Позиция курсора в RxRichEdit


1-72395
@andrew
2003-01-13 15:40
2003.01.23
Привет всем. есть MDI-Child, много MDI-Child :-)


3-72112
rty$
2002-12-29 23:36
2003.01.23
Выбор формат БД


3-72071
Ruf
2003-01-06 12:42
2003.01.23
Паролить на mdb


1-72176
Nikolay Enby
2003-01-13 21:34
2003.01.23
Cards.dll





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