Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2011, 10:29   #1
tresheron
 
Регистрация: 01.05.2011
Сообщений: 9
По умолчанию Поиск по БД Access

Здравствуйте, у меня такой вопрос, задание в инсте дали вот такое:
Допустим я 30.04.2011 работал с Базой и производил следующие действия УДАЛЕНИЕ, ДОБАВЛЕНИЕ,РЕДАКТИРОВАНИЕ...
Сегодня я решил посмотреть по заданной дате что, происходило... Допустим
я решил посмотреть, что делалось 30.04.2011 и у меня должно высветиться
только те данные в базе, которые были актуальны в этот день 30.04.2011
То есть ВСЕ данные бызы которые я редактировал, добавлял и удалял...

Извиняюсь за недопонимание, но я сам толком понять не могу, это типа реестр что ли и как хоть примерно, если вообще можно это реализовать на Delphi, заранее спасибо!
tresheron вне форума Ответить с цитированием
Старый 04.05.2011, 11:12   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Добавить в таблицу поле с датой, обозвать например "Время изменения", в него при каждом запросе в каждую запись писать текущий день. Потом выборку по этому полю с указанием определенной даты.

И да, если удалено - то как бы удалено, отобразить не получится.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 04.05.2011, 11:54   #3
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
У формы есть события. Создайте таблицу журнала событий и записывайте туда любые производимые действия через события формы.
До свидания.

Добавка
Извините, пропустил слово Delphi Описанное выше для формы относится чисто к MS Access. Для Delphi смотрите события, например, для ADOTable.

Последний раз редактировалось OlegVE; 04.05.2011 в 12:17. Причина: Добавка
OlegVE вне форума Ответить с цитированием
Старый 04.05.2011, 12:17   #4
tresheron
 
Регистрация: 01.05.2011
Сообщений: 9
По умолчанию

Если можно, не могли бы вы написать примерный код, это который вносил бы записи в поле "время изменения", если изменяешь данные в таблице.

И OlegVE не могли бы вы поподробнее рассказать про Журнал событий, и если возможно, привести примеры с кодом?
tresheron вне форума Ответить с цитированием
Старый 04.05.2011, 12:31   #5
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Что-то вроде этого для удаления
Код:
procedure TForm1.ADOTable1AfterDelete(DataSet: TDataSet);
begin
ADOQueryNNN.Close;
ADOQueryNNN.SQL.Clear;
ADOQueryNNN.SQL.Text:= 'INSERT INTO ИмяСозданнойВамиЗаранееТаблицы
VALUES ('''КлючОбработаннойЗаписи''', '''ПроизведенаОперацияУдаления''', Date())';
ADOQueryNNN.ExecSQL;
end;
Таблица "ИмяСозданнойВамиЗаранееТаблицы " (Это и будет Журнал событий) с полями: 1. КлючОбработаннойЗаписи 2. ПроизведённаяОперация, 3. ДатаОперации

Добавка
Надо ещё добавить в таблицу ключ записи над которой производилась операция.

Последний раз редактировалось OlegVE; 04.05.2011 в 12:48. Причина: Добавка и исправление
OlegVE вне форума Ответить с цитированием
Старый 04.05.2011, 12:40   #6
tresheron
 
Регистрация: 01.05.2011
Сообщений: 9
По умолчанию

И так надо код по каждому действию, удаление, создание, редактирование?
tresheron вне форума Ответить с цитированием
Старый 04.05.2011, 12:42   #7
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Сообщение от tresheron Посмотреть сообщение
И так надо код по каждому действию, удаление, создание, редактирование?
Да. Для каждого события своя запись в журнал. Только подправите выделенное красным на свою операцию:
Код:
'INSERT INTO ИмяСозданнойВамиЗаранееТаблицы
VALUES ('''КлючОбработаннойЗаписи''', '''ПроизведенаОперацияУдаления''', Date())';
См. добавку и исправления выше.

Последний раз редактировалось OlegVE; 04.05.2011 в 12:47.
OlegVE вне форума Ответить с цитированием
Старый 04.05.2011, 19:50   #8
tresheron
 
Регистрация: 01.05.2011
Сообщений: 9
По умолчанию

А вот у меня подключена таблица access через DBGrid 1, мне получается еще бд access создать и подключить через DBGrid 2, извиняюсь что так дотошно, просто я новичок и во многом не разбираюсь, вообще я уже кое как создал проект в котором подключена бд access через ADO, и сделал запросы по дате, по текущей:
Код:
procedure TForm1.Button11Click(Sender: TObject);
begin
   try
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt = :D');
    ADOQuery1.Parameters.ParamByName('D').Value := Date;
    ADOQuery1.Open;
   except
    on e:Exception do
   end;
end;
И по заданной через поле Edit:
Код:
procedure TForm1.Button10Click(Sender: TObject);
begin
   try
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM AUTO WHERE dt = :A');
    ADOQuery1.Parameters.ParamByName('A').Value := Edit1.Text;
    ADOQuery1.Open;
   except
    on e:Exception do
   end;
end;
и в принципе, это все что есть, получается надо еще создать кнопки управления базой: создать строку, удалить еще че то, и вот этот самый журнал событий, в который будут записываться действия с данными, это я написал чтобы была видна полная картина действий, а что за "КлючОбработаннойЗаписи" ?
tresheron вне форума Ответить с цитированием
Старый 04.05.2011, 20:08   #9
tresheron
 
Регистрация: 01.05.2011
Сообщений: 9
По умолчанию

С кнопками управления разобрался, DBNavigator пойдет? Его действия будут считываться кодом?

Последний раз редактировалось tresheron; 04.05.2011 в 20:19.
tresheron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск в Access Sk_R Microsoft Office Access 7 18.01.2013 21:42
поиск в Access skvosh Помощь студентам 6 17.11.2011 10:43
Поиск в БД access ALEKS2008 Microsoft Office Access 0 15.01.2010 17:18
поиск в Access velikijmerlin БД в Delphi 2 06.12.2009 16:48
поиск в access plaksa Microsoft Office Access 1 13.12.2008 10:11