7 / 7 / 8
Регистрация: 11.04.2012
Сообщений: 87
|
|||||||||||
1 | |||||||||||
Ошибка открытия нескольких файлов из БД04.12.2012, 12:16. Показов 1235. Ответов 8
Метки нет (Все метки)
И так. В БД есть файлы. Их можно открыть, изменить и файл перезаписывается в БД.
Все работает, но когда открываешь 2 файла, то выскакивает ошибка.
0
|
04.12.2012, 12:16 | |
Ответы с готовыми решениями:
8
StreamREader для открытия нескольких файлов Затратность открытия нескольких файлов Ошибка открытия .jpg файлов Ошибка при попытке открытия файлов |
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
|
|
04.12.2012, 12:40 | 2 |
а до этого программа в цикл заходила, или вылетает при первой же попытке войти в цикл, при открытии второго файла?
0
|
7 / 7 / 8
Регистрация: 11.04.2012
Сообщений: 87
|
|
04.12.2012, 13:07 [ТС] | 3 |
Получается так. Открываем первый файл (он создается), а затем открываем второй файл (он тоже создается) и сразу же ругается на второй файл "Ссылка на объект не указывает на экземпляр объекта".
Ничего не перезаписывается и файлы не удаляются после закрытия.
0
|
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
|
||||||
04.12.2012, 13:58 | 4 | |||||
я не совсем про это. сколько раз, при открытии второго файла, происходят действия
просто если первое - то необходимо думать над объявлением переменной процесса, если второе - над циклом её обработки.
1
|
17689 / 12874 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
|
|
05.12.2012, 11:02 | 5 |
Process.Start вовзращает null, если процесс не удалось запустить или он уже запущен.
0
|
7 / 7 / 8
Регистрация: 11.04.2012
Сообщений: 87
|
|
05.12.2012, 11:09 [ТС] | 6 |
kolorotur, Второй файл открывается и вылетает ошибка.
И еще: Например, если уже открыт файл word. Запускаешь программу, открываешь первый файл, ошибка: "Процесс не может получить доступ к файлу "C:\Temp\1СОТРУДНИКИ.doc", так как этот файл используется другим процессом."
0
|
Заблокирован
|
||||||
05.12.2012, 18:37 | 7 | |||||
Исключении летит от того, что файлы word умеют(по умолчанию) открываться в одном процессе. А у Вас во втором случае уже процесс ворда застарчен и ссылка на process у вас не валидная.
Добавлено через 4 минуты Да и с синхронизацией потоков у Вас проблема iFunctions.Semaphor(ID) вот эта проверка может и не отработать как Вы ожидаете. Добавлено через 4 минуты проблему можно решить с помощью передачи параметров в командной строке. подробнее : http://office.microsoft.com/ru... 64010.aspx Добавлено через 1 час 40 минут вот примерчик.
т.е. идея в том, чтобы застартить отдельно процесс, и открыть в этом процессе файл.
1
|
7 / 7 / 8
Регистрация: 11.04.2012
Сообщений: 87
|
||||||
05.12.2012, 18:57 [ТС] | 8 | |||||
adm_loro,
0
|
Заблокирован
|
||||||
05.12.2012, 19:24 | 9 | |||||
да блин.. на это не надо стмотреть
Добавлено через 42 секунды вот то, что Вам нужно, а уж дальше сами решайте что и как открывать
разбейте ваш огромный метод на отдельный подзадачи, все равно он будет время от времени падать.. т.к. синхронизации ни какой. Алгоритм: 1. Получить ID выбранного файла из gv - монопольно(используем lock) 2. Взять блокировку на файл, я бы вообще не в базу писал (0, 1), а создавал именованный мьютекс имя файла + id, если такой мьютекс есть, значит файл юзается, нет - создаем. - это все тоже должно делаться в критической секции. 3. Читаем базу и получаем инфу по файлу - закрываем подключение, на фига нам его держать? т.е. это явно напрашивается в отдельный метод хотябы. Блокировки тут не нужны. 4. Стартим процесс - ждем его(это мега плохо, но я уже не буду рассказывать как этого избежать) . 5. Дождались - вошли монопольно - удалили мьютекс или обновили бд, как в Вашем случае, обновили в Бд инфу по файлу. Я насчитал, как минимум 3 отдельных класса. Прежде, чем решать задачу, следует ее сформулировать и понять.
0
|
05.12.2012, 19:24 | |
05.12.2012, 19:24 | |
Помогаю со студенческими работами здесь
9
Ошибка компиляции нескольких файлов Ошибка загрузки нескольких файлов Проект из нескольких файлов ( ошибка с <windows.h> ) Ошибка при сборке программы из нескольких файлов При создании нескольких word-файлов вылетает ошибка-сервер RPC недоступен!? Нужен батник для открытия нескольких URL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |