On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 25.09.08 10:29. Заголовок: Архивация


aDir := Directory((spath+"*.dbf") )
Aeval( aDir, {|a| aadd( aRz, spath+a[1]) })

HB_ZIPFILE( filzip, arz,8,,,,,,.t. )

Если базы открыты монопольно архивация не выполняется.
Как сделать правильно?

Спасибо: 0 
Цитата Ответить
Ответов - 9 [только новые]


администратор




Пост N: 898
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.09.08 11:22. Заголовок: Открывать в Shared ;..


Открывать в Shared ;)
Или перед архивацией проверять все базы на предмет монопольного открытия и если такие базы есть
то вываливать месагу , что архивация не возможна и тд и тп

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 25.09.08 11:28. Заголовок: Dima пишет: Открыва..


Dima пишет:

 цитата:
Открывать в Shared ;)


Да с этим понятно :) Интерес в другом - архивировать не изменять. Почему так функция написана? или я ее не так использую?

Спасибо: 0 
Цитата Ответить
администратор




Пост N: 899
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.09.08 11:41. Заголовок: Вероятно причины те ..


Вероятно причины те же что и в примере ниже :)

use test exclusive new
copy file test.dbf to test1.dbf // не сработает
close all

use test shared new
copy file test.dbf to test2.dbf // сработает ;)
close all

Можешь предложить способ как это обойти ?
Если сможешь тогда по всей вероятности и сможешь решить проблему с архивацией :)

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 972
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.09.08 13:50. Заголовок: см.zipplatform.cpp ..


см.zipplatform.cpp

return _tsopen(lpszFileName, iMode, iShareMode, S_IREAD | S_IWRITE /*required only when O_CREAT mode*/);

Зачем-то стоит S_IREAD | S_IWRITE для всех случаев.
Хотя эта функция используется для открытия как самого архива, так и архивируемых файлов.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 25.09.08 19:24. Заголовок: Dima пишет: Можешь ..


Dima пишет:

 цитата:
Можешь предложить способ как это обойти ?


Так надо попросить "тых хлопцев" чтоб они эти функции переделали :)))

Спасибо: 0 
Цитата Ответить
администратор




Пост N: 901
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.09.08 19:48. Заголовок: MMK :sm54: :sm54:..


MMK


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 689
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.09.08 11:59. Заголовок: MMK пишет: Почему т..


MMK пишет:

 цитата:
Почему так функция написана? или я ее не так использую?


MMK пишет:

 цитата:
Так надо попросить "тых хлопцев" чтоб они эти функции переделали :)))



Те хлопцы должны переписать сначала ДОС, а потом под Windows ДОС-вский эмулятор !!!

Попробуй открыть базы монопольно, а потом из-под Far'а или "Командера" любого - заархивировать эти базы RAR'ом или ZIP'ом !!!

Остается только ОДИН способ: use test shared new !!!


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 138
Зарегистрирован: 28.06.05
ссылка на сообщение  Отправлено: 29.09.08 12:54. Заголовок: а вроде есть ещё спо..


а вроде есть ещё способ. брать file-хэндл открытого DBF (вполне доступен) и использовать его вместо tsopen (разумеется, сохранив offset)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1
Зарегистрирован: 02.10.08
ссылка на сообщение  Отправлено: 02.10.08 12:06. Заголовок: Здравствуйте Вам! А ..


Здравствуйте Вам!
А ежели (не мудрствуя) так:
if !lIsDir( spath+'ARHIV' )
if !lMkDir( spath+'ARHIV' )
MsgAlert('Не могу создать папку для архива ','Ошибка!')
endif
endif

apath:=spath+'ARHIV\'
aDir := Directory((spath+"*.dbf") )

for each i in aDir
copy file (spath+i[1]) to (apath+i[1])
next

for each i in aDir
if !file(apath+i[1])
select(left(i[1],at('.dbf',i[1])-1))
copy to (apath+i[1]) for .t.
endif
next

Aeval( aDir, {|a| aadd( aRz, apath+a[1]) })
HB_ZIPFILE( filzip, arz,8,,,,,,.t. )

Ну ето конечно если базы открыты Вами, если нет, - то IMHO открытие общих баз на сети кем-то в ексклюзиве, ето... не корошо...
Пы.Сы. Привет, KMM...

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 480
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет