ошибка доступа к dbf

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
eyolkina
Постоянный гость
Сообщения: 85
Зарегистрирован: 23 апр 2008, 14:08
Откуда: г.Уфа МУП Уфаводоканал

ошибка доступа к dbf

Сообщение eyolkina »

Добрый день! Может быть не совсем по теме, но вдруг кто-нибудь сталкивался с такой проблемой.

Мне нужно открыть dbf-файл, прочитать из него данные и дозаписать свои.

Когда открываю его

Код: Выделить всё

DBFOpen('C:\my_vip\to_galaxy.dbf',stOpen);
Все отлично читает, но изменения не записывает.

Когда открываю:

Код: Выделить всё

DBFOpen('C:\my_vip\to_galaxy.dbf',stOpenWrite); 
то выдает ошибку:
Ошибка в файле: имя_файла (Нет доступа).

Доступ пробовала давать всем кому не лень.


Код: Выделить всё

DbfFile:=DBFOpen('C:\my_vip\to_galaxy.dbf',stOpenWrite);
     if DbfFile <= 0 then
     begin
      message(''#3'Не могу открыть файл '+'C:\my_vip\to_galaxy.dbf',mfError+mfOkButton);
      Exit;
     end;

MESSAGE('Открыли файл '+'C:\my_vip\to_galaxy.dbf');
 
if(DBFGetFirst(DbfFile)=0)
 then
   begin
   
   do
   begin
  Message(DBFGetFieldValue(DbfFile,'NODOK'));
  DBFPutFieldValue(DBFFile,'NREC', 'mambo'); // Год
   end
   while DBFGetNext(DbfFile)=0;



   end
 else
  begin
  MESSAGE('В файле не найдено ни одной записи!');
  end;

 


 DBFClose (DbfFile); 
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Функция DBFOpen (string, integer) : longInt

Назначение

Открыть или создать DBF файл.

Описание

function DBFOpen (name : string, mode : integer) : longInt;
Параметры

name : string - имя DBF файла.

mode : integer - режим создания, открытия DBF файла:


stCreate = $3C00;

stOpenWrite = $3D01;

stOpen = $3D02;

stOpenRead = $3D20.

Возвращаемое значение

Функция возвращает дескриптор файла или 0 в случае ошибки.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

DBFUpDateRecord не пробовали? И проверьте правильность полей.
eyolkina
Постоянный гость
Сообщения: 85
Зарегистрирован: 23 апр 2008, 14:08
Откуда: г.Уфа МУП Уфаводоканал

Сообщение eyolkina »

DBFUpDateRecord не пробовали? И проверьте правильность полей.
ОГРОМЕДНОЕ СПАСИБО :)
Помогло!
Да здравствует разум! Да сгинет маразм!
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Аналогичная проблема (перевожу свои отчеты в 8.1): есть каталог с dbf-файлами, нужно данные из этих файлов прочитать.
Выбираю каталог. Открываю в нем конретные файлы.
Ругается: ошбка в файле C:\2\KATCOMPL.DBF (процесс не может получить доступ к файлу, т.к. этот файл занят другим процессом).

С файлом все нормально, но Галактика его открывать не хочет почему-то? В чем может быть проблема? В 7.12 таких проблем нет.

doroga:=GetDirName('Выберете каталог с данными для загрузки');
hDBF1:=DBFOpen(doroga+'\KATCOMPL.DBF', stOpen);
IF hDBF1=0
Message('Не могу открыть файл '+doroga+'\katcompl.dbf. Проверьте правильность выгрузки');
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ну с открытием на чтение вообще никаких проблем.
w_handle:=Dbfopen(w_filename,stOpenRead)
вроде был еще режим открытия на шару. и возможно \ лишний?
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Извиняюсь - мой косяк - дважды открываю один и тот же файл.
ilshat
Местный житель
Сообщения: 222
Зарегистрирован: 04 июн 2008, 14:35
Откуда: Стерлитамак
Контактная информация:

Сообщение ilshat »

А вот вопрос почему нельзя дважды открыть один и тот же файл так и остается открытым. На дворе 21 век вроде как...
PViP
Местный житель
Сообщения: 254
Зарегистрирован: 08 июн 2007, 08:26
Откуда: Красноярск
Контактная информация:

Сообщение PViP »

ilshat, видимо на DBF устанавливается эксклюзивный доступ! Поэтому никто ни читать его не может, а уж тем более читать!
ilshat
Местный житель
Сообщения: 222
Зарегистрирован: 04 июн 2008, 14:35
Откуда: Стерлитамак
Контактная информация:

Сообщение ilshat »

не видимо а совершенно верно :) вопрос в другом - нешто сложно сделать уже в 2008 году нормальные функции работы с файлами без наложения блокировок полностью на файл
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

режим открытия на шару был - для fopen по крайне мере - ищите. ключевое слово Deny наверное
Ответить