Коллеги, добрый день!
Возникло у меня не понимание - как работает TPS.
Есть файл TPS работаю с ним из Clarion 3.1. Создан с опциями Create and Reclame.
С удевлением замечено, что файл в рабочей среде (когда с приложением работают пользователи) периодически "обновляется" т.е. поналачу растет растет (увеличивается в размере), а потом оп - и новый. Соответственно данные за предыдущий период - ушли.
upd
проверил код. есть вот такие строки
обработка события - нажатие кнопки, по которой должно записаться в файл.
open(gl_opr)
IF ErrorCode()
create(gl_opr)
open(gl_opr)
set(gl_opr)
else
set(gl_opr)
.
Clear(OPR:Record)
opr:kod_r = rbt:kod_r
opr:kod_kvit = kvt:npp
opr:data_kvit = opdate
opr:kol_izd = kvt:kol_m
opr:op_nmadel = kvt:n_mad
Я так понимаю, если файл пересоздается, то иногда возникают проблеммы с его открытием. Что это может быть и как можно сделать что бы файл открывался в момент запуска приложения и оставался открытым?
Несколько пользователей запускают это приложение одновременно.
Что я не досмотрел?
Спасибо
Андрей
Поведение файлов TPS
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 4994
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Re: Поведение файлов TPS
Опция Reclaim поддерживается всегда, независимо от того стоит ли она или не стоит. А дальше - принципиальная ошибка. Create удаляет старый файл и создаёт новый пустой. Зачем использовать? Надо делать проверку на существование файла, например. Типа - if Exists(gl_opr) then create(gl_opr) end. Тут, я так понимаю, ещё одна принципиальная ошибка. Open открывает файл в монопольном режиме, поэтому при других попытках выдаёт ошибку. Нужно использовать Share или опции для Open (типа Read/Write + Deny Write). Вообще, непонятно, зачем над этим задумываться. В установках App ставите File Access в Share и больше никогда о функциях Open и Share не вспоминаете, шаблоны сами генерят нужный код .
We are hard at work… for you.
Re: Поведение файлов TPS
Собственно в
в Global Settings и поставлено Default Share Access. Только вот при попытке что-то сделать получаю File not Open.
в Global Settings и поставлено Default Share Access. Только вот при попытке что-то сделать получаю File not Open.
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Поведение файлов TPS
Добрый день!
В 3 кларионе - есть
CheckOpen(file,1,readwrite+denynone) ! Open file if necessary
Алексей
В 3 кларионе - есть
CheckOpen(file,1,readwrite+denynone) ! Open file if necessary
Алексей
Последний раз редактировалось Алексей- Софт-Центр 13 Февраль 2013, 13:47, всего редактировалось 1 раз.
Re: Поведение файлов TPS
В общем заменил Open на Share
вроде работает. Запуск в производстве покажет.
Спасибо
вроде работает. Запуск в производстве покажет.
Спасибо
-
- ✯ Ветеран ✯
- Сообщения: 4994
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Re: Поведение файлов TPS
Есть ещё в Global Settings настройки для каждого файла, они должны быть As Default. И ещё. Не помню как в 3.1, но сейчас в процедуре нужно в Files указывать файлы чтобы шаблоны сгенерили текст для открытия.
We are hard at work… for you.