Страница 1 из 2
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 7:11
talgat55
С10 ABC Пользую dbf файлы открытия одного - норм При открытии второго выдает ошибку - not open ?
Процедура sourse Оба файла объявлены в таблице
" OPEN(AMBDOP,12H)
send(ambDOP,'BUFFERS=200')
STREAM(AMBDOP)
MESSAGE('AMBDOP ' & ERROR())
OPEN(AMB,12H)
send(amb,'BUFFERS=200')
STREAM(AMB)
MESSAGE('AMBN ' & ERROR()) - тут выдает ошибку
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 8:49
talgat55
точнее после Open(amb,12h) выдает file acess deni
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 10:49
Игорь Столяров
А если поменять местами открытие файлов, ошибка всё равно будет на 2-ом файле ?
Или по другому: проблема именно при открытии 2-го файла или в том, что файл AMB уже открыт (разрушен, заблокирован и т.д.) ?
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 11:33
talgat55
ошибка все равно во втором файле - amb не был открыт не разрушен объявлен предварительно в таблице
Пробовал типа access:close(amb) потом optn(amb,12h) тот же эффект
Оба файла полноценные нормальные
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 12:24
Игорь Столяров
Отлично ! Т.е. если AMB открывается первым - то проблем нет.
Тогда вставьте перед открытием второго файла:
Если файл AMB действительно закрыт - то статус должен быть "0" (ноль).
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 12:26
Дед Пахом
А один из них это не алиас на второй?
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 14:37
talgat55
это два разных совершенно самостоятельных dbf файлов . Если amb первым то такая ошибка на ambdop и наоборот
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 14:51
talgat55
status показывает=0
Если вместо open указать share - то ошибка уходит
Но мне нужен монопольный доступ для срабатывания flush stream и send( buffer
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 15:40
Ал
talgat55 писал(а): 08 Октябрь 2017, 14:51
status показывает=0
Если вместо open указать share - то ошибка уходит
Но мне нужен монопольный доступ для срабатывания flush stream и send( buffer
чудес не бывает при открытии баз - т.е. смотрите внимательно свой код/настройки апп при открытии файлов и прочее... - где-то что-то установлено/запущено/уже открыто/..., поэтому не получается открыть файл в желаемом вами режиме...
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 15:50
Игорь Столяров
talgat55 писал(а): 08 Октябрь 2017, 14:51Если вместо open указать share - то ошибка уходит
Получается, что второй файл упорно не хочет открываться в монопольном режиме ...
Всё может быть, DBF рудиментный формат, вряд-ли кто-то его драйвер проверяет и тестирует ....
Тестировать смысла не вижу, скорее всего проблема проявляется на каких-то навороченных сторонних файлах ?
Какой драйвер Вы используете для доступа к DBF файлам (dBase III, dBase IV, Clipper) ?
Попробуйте сменить драйвер. Когда-то очень давно были проблемы (не помню, что именно) с драйвером dBase III,
но точно помню, что простая смена драйвера на dBase IV полностью решила тогда вопрос ...
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 15:58
talgat55
драйвер dbase IV
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 16:07
Ал
talgat55 писал(а): 08 Октябрь 2017, 15:58
драйвер dbase IV
я так понимаю - у вас просто какая-то обработка, если по одному дают возможность монопольно работать с файлом, ну так и работайте с ними последовательно, пока непонятны причины неоткрытия сразу нескольких в монопольном..., можно конечно со сменой драйверов баз у них поэкспериментировать, если есть желание и время (один - дбф3, 2 - дбф4, 3 - фокс... мысль понятна, думаю

)...
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 16:24
kreator
А если руками ничего не писать? Если позволить шаблонам самим сгенерить текст? Выставить в глобальных настройках монопольный режим и посмотреть. Чисто в качестве эксперимента.
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 16:33
Дед Пахом
не может быть ошибки в словаре, так что оба файла ссылаются на один и тот же дисковый файл?
с10 ABC ОТКРЫТЬ DBF ФАЙЛЫ
Добавлено: 08 Октябрь 2017, 16:57
talgat55
В словаре - разные таблицы с разными именами включая физические
Нужно одновре менно работа с двумя
Делаю так - не решив проблему - перебрасываю в отдельной процедуре один из них в tps затем в другой открываю первый как tps ( без монопольного) и второй как dbf с монопольным режимом
Попробую глобальные настройки монопольности