Страница 1 из 1

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

Добавлено: 13 Февраль 2013, 7:58
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

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

Что я не досмотрел?
Спасибо
Андрей

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

Добавлено: 13 Февраль 2013, 10:46
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: .

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

Добавлено: 13 Февраль 2013, 13:19
pilotav
Собственно в
в Global Settings и поставлено Default Share Access. Только вот при попытке что-то сделать получаю File not Open.

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

Добавлено: 13 Февраль 2013, 13:34
Алексей- Софт-Центр
Добрый день!
В 3 кларионе - есть

CheckOpen(file,1,readwrite+denynone) ! Open file if necessary


Алексей

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

Добавлено: 13 Февраль 2013, 13:44
pilotav
В общем заменил Open на Share
вроде работает. Запуск в производстве покажет.

Спасибо

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

Добавлено: 13 Февраль 2013, 14:31
kreator
Есть ещё в Global Settings настройки для каждого файла, они должны быть As Default. И ещё. Не помню как в 3.1, но сейчас в процедуре нужно в Files указывать файлы чтобы шаблоны сгенерили текст для открытия.