Архивирование

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
IvanFR
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 04.09.2005 (Вс) 4:44

Архивирование

Сообщение IvanFR » 06.09.2005 (Вт) 3:36

Всем привет :)
Хочу спросить вашего совета и услышать Ваше мнение.

Обрисую примерно ситуацию: к программе подключена база данных (занимает порядка 100 мб, при архивации rar'ом сжимается в 3 раза). База постоянно модифицируется и требует резервного копирования с сохранением предыдущих копий. Возможно ли сделать так, чтобы программа делала резервную архивную копию базы. Ну если не сама, то хотя бы автоматически задействуя архиватор.

Если это в принципе возможно, то подскажите с чего начать.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.09.2005 (Вт) 4:46

Какая база?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

IvanFR
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 04.09.2005 (Вс) 4:44

Сообщение IvanFR » 06.09.2005 (Вт) 5:10

Access *.mdb
Какая база - это в принципе не так уж и важно.

Вопрос глобальный - вообще чего-нибудь программно заархивить :) или еще как-нибудь зап'акить. Допустим это была бы не база, а огромный текстовой файл или еще чего...

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

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 06.09.2005 (Вт) 6:55


alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.09.2005 (Вт) 8:48

IvanFR писал(а):Access *.mdb
Какая база - это в принципе не так уж и важно.

Это, в принципе, важно.
Так как в, к примеру, MS SQL у тебя не один файл, а несколько. И сделать с ними ты ничего толком не сможешь, т.к. файлы постоянно открыты сервером.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.09.2005 (Вт) 10:13

2 Алексей К.
Насколько мне известно, есть библиотека только для разархивирования.
Лучший способ понять что-то самому — объяснить это другому.

Zero_Bit
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 23
Зарегистрирован: 04.09.2005 (Вс) 14:28

Сообщение Zero_Bit » 06.09.2005 (Вт) 10:23

Antonariy
А что мешает вызвать rar.exe с нужными параметрами?.. :roll: ИМХО, челу это как раз и нужно

Ну если не сама, то хотя бы автоматически задействуя архиватор.

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 06.09.2005 (Вт) 12:30

Есть достаточно бесплатных/поломанных ActiveX для работы с ZIP. В том числе и поддерживающие архивирование и разархивирование ;)
То, что для одних константа, для других только переменная...

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 08.09.2005 (Чт) 10:09

У меня резервное копирование работает следующим образом:
1. копирование данных из рабочей папки программмы во временную программы резервного копирования (FSO копирует данные не зависимо от того, занят файл или нет, при наличии прав, конечно :-)).
2. В оэтой временной папке архивируется.
3. Архив скидывается в папку для хранений архивов
4. Временная папка очищается.

P.S. Копирование происходит на много быстрее чем прямое архивирование данных с рабочей папки. у меня резервируются базы FoxPro там куча файлов занимающих примерно 800-900 мег, как этот принцип будет работать с единственным файлом mdb я не знаю.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 08.09.2005 (Чт) 10:11

Да, кстати, если нужно выложу исходник.
Кучеряво зато свое :-)
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 08.09.2005 (Чт) 10:49

alibek писал(а):Так как в, к примеру, MS SQL у тебя не один файл, а несколько. И сделать с ними ты ничего толком не сможешь, т.к. файлы постоянно открыты сервером.


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

Да и с mdb-шками проблем нет - просто паковать эту базу по ночам (когда с ней никто не работает) и все.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 08.09.2005 (Чт) 11:33

У меня в принципе все ночью и работает, только есть еще и ежечасное резервирование (специфика организации).
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 08.09.2005 (Чт) 11:43

kif писал(а):У меня в принципе все ночью и работает, только есть еще и ежечасное резервирование (специфика организации).


Тогда обломись с mdb-шками - для их архивирования тебе придется каждый час выгонять пользователей из программы.

Если данные серъезные то хранить их в mdb (и работать с ними) довольно глупо - лучше съехать на SQL-сервер. Получишь надежность недостижимую с mdb-шками при их ежеминутном архивировании, ну и прочие вкусности.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 08.09.2005 (Чт) 11:50

kif писал(а):У меня резервное копирование работает следующим образом:
1. копирование данных из рабочей папки программмы во временную программы резервного копирования (FSO копирует данные не зависимо от того, занят файл или нет, при наличии прав, конечно :-)).


Ну и что в этом хорошего - этот файл в итоге может оказаться испорченным...

kif писал(а):P.S. Копирование происходит на много быстрее чем прямое архивирование данных с рабочей папки. у меня резервируются базы FoxPro там куча файлов занимающих примерно 800-900 мег, как этот принцип будет работать с единственным файлом mdb я не знаю.


Да точно также. Рабочая папка у тебя скорей всего расшареный ресурс, а архивируешь уже из локальной...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 08.09.2005 (Чт) 12:00

Andrey Fedorov писал(а):
kif писал(а):У меня в принципе все ночью и работает, только есть еще и ежечасное резервирование (специфика организации).


Тогда обломись с mdb-шками - для их архивирования тебе придется каждый час выгонять пользователей из программы.

Если данные серъезные то хранить их в mdb (и работать с ними) довольно глупо - лучше съехать на SQL-сервер. Получишь надежность недостижимую с mdb-шками при их ежеминутном архивировании, ну и прочие вкусности.


Эта программа работает уже 2 года и никаких проблем, я же сказал, что FSO копирует файл независимо от того занят файл или нет. Попробуй использовать системную комманду copy, ей точно все по барабану.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 08.09.2005 (Чт) 13:21

(как вариант)

'===========================================================|
' <МОДУЛЬ ДЛЯ АРХИВИРОВАНИЯ ФАЙЛА ИЛИ ПАПКИ АРХИВАТОРОМ, >|
' <КОТОРЫЙ УСТАНОВЛЕН В СИСТЕМЕ. >|
' |
' = = = = = = = M A D E B Y H A C K E R = = = = = = |
' icq: 826747, mail: visualbasic@xaker.ru |
'===========================================================|

'Нужны функции работы с реестром (модуль reg.bas)
'Поддерживает только WinRar, степень сжатия - максимальная
'Возможность установить на архив пароль

Private Arhive$

Private Sub Load(File$, Password$, RarFile$)
'Находим в компе архиватор
Arhive$ = RegGetValue(HKEY_CLASSES_ROOT, ".zip\ShellNew", "FileName")
If Arhive$ <> "" Then ' Если есть на компе архиватор...
Arhive$ = Left(Arhive$, Len(Arhive$) - Len(Spliting(Arhive$, "\"))) 'берём его путь
'Смотрим какой архиватор...
If InStr(1, LCase(Arhive$), "winrar", vbTextCompare) > 0 Then 'Если WinRar
'Формируем коммандную строку для архивации
If RarFile$ = "" Then RarFile$ = Replace(File$, Spliting(File$, "."), "rar")
Arhive$ = Chr(34) & Arhive$ & "Rar.exe" & Chr(34) & " a -m5 -inul -ep -ep1 -idp -p" & Password$ & " " & Chr(34) & RarFile$ & Chr(34) & " " & Chr(34) & File$ & Chr(34)
End If
End If

End Sub

Public Sub ArhiveToWinRar(File$, Password$, RarFile$)
Load File$, Password$, RarFile$
Shell Arhive$, vbHide
End Sub
А как оно на самом деле - Х.З. !

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 08.09.2005 (Чт) 13:22

упс, чуть чуть старенькая тема... :) ну не чё, заботимся о наполнении :)
А как оно на самом деле - Х.З. !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 13

    TopList