Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не срабатывает проверка на Modified 
:(
    Опции темы
santilaas
Дата 25.5.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



Привет всем!
Firebird1.5.3, FibPlus5.2, Ehlib4.0
Ситуация такая: редактирую записи непосредственно в таблице (т.е. через DBGridEh), другими словами, без использования формы редактирования. Притом все довольно таки примитивно - на соответствующие кнопки пишу:
добавить - DM.DataSet.Append;
изменить  - DM.DataSet.Edit;
удалить    - DM.DataSet.Delete;
сохранить - DM.DataSet.Post;
При закрытии формы хочу, чтобы проверялось условие - если запись модифицировалась, тогда предлагать, сохранить изменения перед закрытием или нет.
Пишу:
Код

if DM.DataSet.Modified then
    begin
        if Application.MessageBox('Сохранить изменения?','Вопрос!',MB_YesNo+MB_ICONQUESTION)=IDYes then   
             DM.DataSet.Post; 
        else
             DM.DataSet.Cancel;
    end;  
   
Затем добавляю данные, без сохранения и пытаюсь закрыть форму НО!!! - (проверял отладчиком) - показывает, что DM.DataSet.Modified = False
Вопрос: почему? как тогда быть?  


--------------------
[
PM MAIL   Вверх
Palladin
Дата 26.5.2007, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



если показывает что false, а тебе обязательно сохранить попробуй обмануть систему, вообщем в любое поле твоей БД, к примеру поле "Фамилия", добавь в любую имеющуюся строку любой символ и сразу его удали, я думаю такие действия приведут к тому что modified будет показывать true:)
я думаю ты понял что я имею ввиду, или можеш просто добавить один пробел в конец любой записи, хуже базе от этого не станет

Или вариант создай в БД еще одно поле, которое в программе видно не будет(visible:=false:)) и туда заноси что угодно, после этого точно будет modified = true, да и делай любое из моих предложений, сразу перед вызовом твоего if, т.е. тут:

Код

//реализуй мою задумку тут
/////////////////////////////////////
if DM.DataSet.Modified then
    begin
        if Application.MessageBox('Сохранить изменения?','Вопрос!',MB_YesNo+MB_ICONQUESTION)=IDYes then   
             DM.DataSet.Post; 
        else
             DM.DataSet.Cancel;
    end;  



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
santilaas
Дата 26.5.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



перед тем, как задать вопрос на форум, я пробовал сделать подобное и Modified действительно устанавливался в True, но по моему мнению при редактировании записи через DBGridEh изменения должны менять Modified в любом случае, и почему этого не происходит не понятно. Т.е. получается вариант с непосредственным редактированием записи единственный возможный?


--------------------
[
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.