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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2013, 09:07   #1
Even111
 
Регистрация: 23.10.2013
Сообщений: 3
По умолчанию Работа с файлами Excel в Delphi

Доброго времени суток.
Такая проблема. Есть прога, написанная в Delphi, делает выборку из базы и записывает в Excel-файл на общем ресурсе. Работает все хорошо, но одно но. Если какой-нибудь пользователь, забудет закрыть у себя открытый файл эксель (с общего ресурса), то прога встает, т.к. файлы не общего доступа.
Как можно решить данную ситуацию? в коде написать, чтоб временно открывался общий доступ? или выгонять всех через сис.админов?
Even111 вне форума Ответить с цитированием
Старый 23.10.2013, 09:19   #2
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

А закрывать файл с сохранением из программы с правами админа, а затем открывать его для записи, не?
kta87 вне форума Ответить с цитированием
Старый 23.10.2013, 09:24   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если дельфи через ADO пишет в xls, то никак - требуется монопольный доступ. Если через OleVariant, то есть механизм настройки общего доступа, не использовал и по отзывам в сети часто проблемный. Думаю лучше всего административно выгонять или перейти на нормальную СУБД
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.10.2013, 09:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

согласен с тем, что сказал Аватар.

есть ещё решение - экстенсивное. Если файл занят - писать в новый XLS файл (например, добавляя в имя файла дату и время до мсекунд).
А ещё вариант - программа, как только обнаруживает занятый файл ждёт в цикле заданное время, постоянно проверяя, не освободился ли файл, и, если не освободился - отправляет электронное послание администраторам, с просьбой принять административно-технические меры по устранению проблемы.

А вообще, конечно, лучше не морочить голову и перейти на использование СУБД!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.10.2013, 10:06   #5
Even111
 
Регистрация: 23.10.2013
Сообщений: 3
По умолчанию

Меня админы дрюкнут за несоблюдение информ.безопасности

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
.
отправляет электронное послание администраторам, с просьбой принять административно-технические меры по устранению проблемы.
Уже была принята подобная попытка, админы говорят, это надо думать и скорее всего это будет долго. Кажется будет быстрее в программе что нибудь подобное сделать.

Последний раз редактировалось Stilet; 23.10.2013 в 11:14.
Even111 вне форума Ответить с цитированием
Старый 23.10.2013, 10:34   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
будет быстрее в программе что нибудь подобное сделать.
к сожалению, ничего "подобного" Вы в своей программе не сделаете.
Поэтому - выкручивайтесь...

p.s. а создавать XLS файл с новым именем Вам не понравилось?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.10.2013, 10:38   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Кажется будет быстрее в программе что нибудь подобное сделать.
Программно - завершать работу прог на других компьютерах с сохранением данных - не слабо? И как пользователи отнесутся с такому фокусу без их ведома?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.10.2013, 10:44   #8
Even111
 
Регистрация: 23.10.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Программно - завершать работу прог на других компьютерах с сохранением данных - не слабо? И как пользователи отнесутся с такому фокусу без их ведома?
В априори пользователи должны вырубать тачки, а некоторые забывают, и держат файл пока я выгружаю данные. Я произвожу выгрузку когда они еще спят через планировщик

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
к сожалению, ничего "подобного" Вы в своей программе не сделаете.
Поэтому - выкручивайтесь...

p.s. а создавать XLS файл с новым именем Вам не понравилось?!
Выгрузка производится каждый день, данные на текущий день. один файл каждый месяц содержит в себе 28-31 листов. Если файл будут держать неделю, сколько копий у меня появится??? а места сколько начнет занимать.

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

Последний раз редактировалось Stilet; 23.10.2013 в 11:18.
Even111 вне форума Ответить с цитированием
Старый 23.10.2013, 11:25   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Меня админы дрюкнут за несоблюдение информ.безопасности
Они дятлы )
Экзель твой защищен паролем? Если нет, и каждый может в него почти беспрепятственно писать то какая тут к черту безопасность?
Полюбому ставить серверную СУБД, а уж из нее выгрузку в Ёхель делать.
или писать прогу, которой будут передаваться данные, а уже она будет по очереди их в экзель пихать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.10.2013, 13:06   #10
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

как вариант написать службу которая в определённый момент находит и завершает процессы экселя(или его аналога), и установить её на клиентских машинах, естественно нужно будет её вписать в антивирь и вин безопасность. но данное действие очень сильно походит на вирус, так что это только теоретическое решение.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Excel Aleksandr_59 Общие вопросы Delphi 3 16.01.2013 21:52
Работа с 2-мя файлами Excel slone2179 Microsoft Office Excel 68 08.02.2012 12:04
Работа в Delphi с Excel файлами! Leximus Общие вопросы Delphi 5 02.10.2010 11:37
Работа с файлами из Excel axell_pnz Microsoft Office Excel 4 16.11.2009 11:10
работа с excel файлами через Delphi Winss Помощь студентам 6 08.09.2007 17:54