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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2009, 11:09   #1
RaMoNeZz
Пользователь
 
Регистрация: 13.09.2008
Сообщений: 16
По умолчанию Резервное копирование базы ADO

Добрый день! Встал такой вопрос, делать резерв программно есть база mdb в ней где-то 5 таблиц, вопрос такой как можно программно сохранять базу mdb?? я просто никогда бэк апы баз не далал и не могу понять как и что.....по форуму поискал найти не смог, кто делал поделитесь как?
RaMoNeZz вне форума Ответить с цитированием
Старый 19.02.2009, 11:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну как как...
CopiFileTo(<твоя.MDB>,<Резервная ее копия.MDB>)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2009, 17:03   #3
RaMoNeZz
Пользователь
 
Регистрация: 13.09.2008
Сообщений: 16
По умолчанию

вот как я сделал, примитивно, но работает по нажатию кнопки выход
var
s:string;
begin
проблеммка только вот во чтом....как сделать так чтоб при дате "01" папка backup очищалась полностью???( это для того чтоб база не замусарилась а хранила только сохранения за месяц этого достаточно
вот так начал
if formatdatetime('dd',date())=inttost r(01) then showmessage('!!!'); если дата 01 то.....нужно написать как очистить папку....помогите!!!
в остальном разобрался и проверил все отлично работает
s:=FormatDateTime('dd.mm.ee',date() );
dm.ADOQuery1.SaveToFile('backup\'+s +'-ostanovki.dim');
dm.personal.SaveToFile('backup\'+s+ '-personal.dim');
dm.remont.SaveToFile('backup\'+s+'-remont.dim');
dm.grafik.SaveToFile('backup\'+s+'-grafik.dim');
dm.otmetka.SaveToFile('backup\'+s+'-otmetka.dim');
dm.prostoi.SaveToFile('backup\'+s+'-prostoi.dim');

Последний раз редактировалось RaMoNeZz; 19.02.2009 в 23:32. Причина: изменение
RaMoNeZz вне форума Ответить с цитированием
Старый 20.02.2009, 16:07   #4
RaMoNeZz
Пользователь
 
Регистрация: 13.09.2008
Сообщений: 16
По умолчанию

что, ни кто не знает как программно очистить всю папку?
RaMoNeZz вне форума Ответить с цитированием
Старый 21.02.2009, 07:53   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от RaMoNeZz
что, ни кто не знает как программно очистить всю папку?
знаем. Надо просто удалить все файлы, которые там есть! :-D

вот, выдрано из JvUtils.pas (JVCL).
чуток подкорректировал (убрал проверку на маску):
Код:
procedure DeleteFiles(const Folder: TFileName);
var
  SearchRec: TSearchRec;
  DosError: Integer;
  Path: TFileName;
begin
  Path := AddSlash2(Folder);
  DosError := FindFirst(Path + '*.*', faAnyFile and not faDirectory, SearchRec);
  while DosError = 0 do
  begin
    DeleteFile(Path + SearchRec.Name);
    DosError := FindNext(SearchRec);
  end;
  FindClose(SearchRec);
end;
Будьте бдительны - удаляет ВСЕ файлы в каталоге Folder: TFileName (и без лишних вопросов)!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.02.2009, 08:06   #6
RaMoNeZz
Пользователь
 
Регистрация: 13.09.2008
Сообщений: 16
По умолчанию

Спасибо, я немного подкоректировал сохранение вот так
var
s:string;
begin
s:=FormatDateTime('dddd',date()); теперь у меня не по числам а по дням недели так проще...и очищать не надо бэк создаеться в папку дня недели
dm.ADOQuery1.SaveToFile('backup\'+s +'/ostanovki.dim');
dm.personal.SaveToFile('backup\'+s+ '/personal.dim');
dm.remont.SaveToFile('backup\'+s+'/remont.dim');
dm.grafik.SaveToFile('backup\'+s+'/grafik.dim');
dm.otmetka.SaveToFile('backup\'+s+'/otmetka.dim');
dm.prostoi.SaveToFile('backup\'+s+'/prostoi.dim');
close;
end;
вопрос теперь в другом...
вот так если пользователь захотел восстановить базу
var
s:string;
begin
s:=combobox1.Text; в комбо просто написано Пн.Вт Ср и тд
dm.ADOQuery1.LoadfromFile('backup\' +s+'\ostanovki.dim');
dm.personal.LoadfromFile('backup\'+ s+'\personal.dim');
dm.remont.LoadfromFile('backup\'+s+ '\remont.dim');
dm.grafik.LoadfromFile('backup\'+s+ '\grafik.dim');
dm.otmetka.LoadfromFile('backup\'+s +'\otmetka.dim');
dm.prostoi.LoadfromFile('backup\'+s +'\prostoi.dim');
close;
end;
а если в папке backup\Понедельник ничего не лежит соответсвенно выкидываеться ошибка...как сделать так чтоб не было ошибки а просто вывелось сообщение что базы за Понедельник нет другую ищи....
пробывал через try...except что то у меня не получилось как правильно реализовать проверку?
RaMoNeZz вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прога Резервное копирование Yar Помощь студентам 1 28.05.2008 11:24
Резервное копирование файлов Viteef Софт 0 15.12.2007 08:02
Резервное копирование и восстановление данных в SQL Server 2005 Valkiria SQL, базы данных 1 29.10.2007 10:17
программа на дельфи - Резервное копирование holy Помощь студентам 4 06.09.2007 11:06
Связь базы Access через ADO Lex87 БД в Delphi 3 30.11.2006 07:38