|
|
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
... а если открыт - то попробовать выяснить кем именно? Это нужно сделать программно перед переименованием/перемещением файла. Дело в том, что файлы расположены в папках по определенному принципу. В имени файла присутствует содержимое нескольких полей формы (месяц, год, название). Поэтому требуется синхронизировать имя файла в соответствии с данными, если они изменились. Файлы екселевские Форма в Акс 2002 Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2005, 23:57:02 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Чтоб проверить, не открыт ли кем - попытаться открыть с эксклюзивным доступом. если открыт - копать netapi, С-шный код могу кинуть в понедельник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 00:46:22 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
попытаться открыть с эксклюзивным доступомА как это сделать? Что то у FileSystemObject.OpenTextFile не нахожу такого режима.... Может попробовать тупо переместить/переименовать файл, используя конструкцию Name oldpathname As newpathname и отслеживать ошибку? Кажется, для успешного выполнения файл должен быть закрыт. если открыт - копать netapi, С-шный код могу кинуть в понедельникБыло бы очень полезно взглянуть, хотя бы чтоб понять методику копания. Жду понедельника. :) Пока не представляю как код на Си можно привинтить к Аксу, но думаю что можно переписать на ВБА.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 20:41:41 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
1) просто открой файл старым добрым бэйсиковским open типа Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 21:44:01 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Точно! А то я уже загнался в "высокие материи"... Все просто оказалось Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Осталось выяснить имя того негодяя, который держит его открытым... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 22:59:54 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Накопал такой код, который позволяет посмотреть кто какие файлы открыл на определенном компе. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 23:17:16 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
авторВ принципе, имя компа где файлы живут, известно, только вот r.Path возвращает локальный путь на том компе... хотя, это решаемо :) Это разумно, файл может быть доступен по разным share с разными правами. Копай дальше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2005, 23:44:10 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Alexey ShКопай дальшеДальше опять вилы.... Этот код (немного измененный) НЕ работает, если запущен с пользовательскими привилегиями (впрочем, это понятно). Да и с админскими работает не быстро (3...5 секунд, и это когда в сети нет никого).... И то только в MDB. А будучи откомпилированым в MDE, вырубает Акс с предложением отправить отчет в Мелкософт. Видно, нужен другой подход..... Будем копать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 02:44:04 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
А почему собственно, не применить именно другой подход ? Данные в Аксессе лежат ? Лежат. Думаю, вполне можно сделать форму/набор форм, которая и по внешнему виду и по функциональности будет очень похожа на екселовские листы. Так может и не стоит таскать этот файловый багаж ? Насколько насущна необходимость иметь это еще раз именно в екселе ? Если уж приспичило, можно каждый раз генерить свеженький табличный файл по требованию пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 11:50:02 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительДанные в Аксессе лежат ? Лежат.Данные внешних файлов? К сожалению, не лежат... Даже близко... Это различные документы, в основном *.XLS, попадаются *.DOC, внутри файлов могут быть и рисунки... В Аксесе только привязка документа(ов) к конкретной записи... Но если меняется допустим дата - то меняется и имя файла(ов). Это было утверждено давно, еще в эпоху мамонтов... Бардак и глупости? Естественно! Если б это разрабатывалось мной изначально - конечно многое было бы иначе Но к сожалению, сей порядок был заведен не мной. А мне надо попытаться обеспечить минимум путаницы и максимум функционала в этом бардаке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2005, 20:32:57 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Вспоминаю одну фразу (не свою): пускай безобразно, лишь бы единообразно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 08:53:08 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительА почему собственно, не применить именно другой подход ? Данные в Аксессе лежат ? Лежат. Думаю, вполне можно сделать форму/набор форм, которая и по внешнему виду и по функциональности будет очень похожа на екселовские листы. Так может и не стоит таскать этот файловый багаж ? Насколько насущна необходимость иметь это еще раз именно в екселе ? Если уж приспичило, можно каждый раз генерить свеженький табличный файл по требованию пользователя. а если такие требования? у нас вообще это нормативными документами регламентируется :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 09:51:14 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
В порядке понедельничного бреда. Можно взять какой-нибудь учебник по OLEDB. Такие учебники чаще всего начинаются с написания OLEDB-провайдера на основе NTFS. Ну а дальше все просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 12:14:28 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Обещал "выгонялку" закинуть. В параметрах - не имя файла, а префикс, короче всё как в NET FILE, ессно права админа должны быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 12:53:16 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
>Alexey Sh Спасибо за примерчик. Пытаюсь разобраться. Хотя, на первый взгляд кажется, что прикрутить это в полной мере непосредственно к Аксу - дело тухлое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 23:19:05 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
неа :) описать на VBA функции NETAPI, чуток повоевать с указателями - и ваши волосы будут в полном порядке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 23:39:07 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
я такую штуку через net file летом предлагал /topic/99452&hl= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 11:35:12 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Как посмотреть кто что открыл на сервере. Попался почти готовый код на VB. Но как быть с вот этим? MSDNOnly members of the Administrators or Server Operators local group can successfully execute the NetFileEnum function. Запихнуть группу пользователей БД в операторы сервера.... или... ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 21:09:15 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Написать сервис, запускаемый на сервере и обращаться к этому сервису из пользовательских программ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2005, 11:10:09 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Мдя... ну не каждый день пишу сервисы... Точнее, вааабще никогда их не писал... С чего начать то, чтоб с ними разобраться? Вот так маленькое желание добавить в пользовательский интерфейс маленькую вкусность (к тому же редко используемую) порождает большие проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2005, 16:21:29 |
|
||
|
Как проверить, не открыт ли файл...
|
|||
|---|---|---|---|
|
#18+
Alexey Sh , спасибо за пинки в нужном направлении. Может быть и криво, но тем не менее, кажется работает. Тока не смейтесь..... На сервере, где файлы живут, поднял веб-сервер на IIS и положил туда ASP-страничку с таким кодом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. PS. Может быть когда нибудь и научусь ловить рыбу удочкой. Только бы научиться ей пользоваться. А пока нанял рыболовный траулер, чтоб кошкам на ужин наловить..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 12:05:14 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32890615&tid=1668930]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 341ms |

| 0 / 0 |
