Поведение файлов TPS

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
pilotav
Посетитель
Сообщения: 31
Зарегистрирован: 27 Май 2011, 12:54

Поведение файлов TPS

Сообщение pilotav »

Коллеги, добрый день!
Возникло у меня не понимание - как работает 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

Я так понимаю, если файл пересоздается, то иногда возникают проблеммы с его открытием. Что это может быть и как можно сделать что бы файл открывался в момент запуска приложения и оставался открытым?
Несколько пользователей запускают это приложение одновременно.

Что я не досмотрел?
Спасибо
Андрей
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Поведение файлов TPS

Сообщение kreator »

Опция Reclaim поддерживается всегда, независимо от того стоит ли она или не стоит. А дальше - принципиальная ошибка. Create удаляет старый файл и создаёт новый пустой. Зачем использовать? Надо делать проверку на существование файла, например. Типа - if Exists(gl_opr) then create(gl_opr) end. Тут, я так понимаю, ещё одна принципиальная ошибка. Open открывает файл в монопольном режиме, поэтому при других попытках выдаёт ошибку. Нужно использовать Share или опции для Open (типа Read/Write + Deny Write). Вообще, непонятно, зачем над этим задумываться. В установках App ставите File Access в Share и больше никогда о функциях Open и Share не вспоминаете, шаблоны сами генерят нужный код :mrgreen: .
We are hard at work… for you. :)
pilotav
Посетитель
Сообщения: 31
Зарегистрирован: 27 Май 2011, 12:54

Re: Поведение файлов TPS

Сообщение pilotav »

Собственно в
в 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


Алексей
Последний раз редактировалось Алексей- Софт-Центр 13 Февраль 2013, 13:47, всего редактировалось 1 раз.
pilotav
Посетитель
Сообщения: 31
Зарегистрирован: 27 Май 2011, 12:54

Re: Поведение файлов TPS

Сообщение pilotav »

В общем заменил Open на Share
вроде работает. Запуск в производстве покажет.

Спасибо
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Поведение файлов TPS

Сообщение kreator »

Есть ещё в Global Settings настройки для каждого файла, они должны быть As Default. И ещё. Не помню как в 3.1, но сейчас в процедуре нужно в Files указывать файлы чтобы шаблоны сгенерили текст для открытия.
We are hard at work… for you. :)
Ответить