Ошибка pdoxusrs net

Здравствуйте!

На одном и том же компьютере, но под другой учетной записью, попытался войти в Инфо-Бухгалтер 8. Начались проблемы.

Сначала был долгий поиск ключа, нахождение и предложение перезаписать ключ (код ответ и код вопрос). Техподдержка рекомендовала сделать это.

Далее стала возникать ошибка: Не возможен доступ к PDOXUSRS.NET. Удаление этого файла не помогло.

В bde на всех компах конфиг одинаковый. Другие пользователи входят без проблем.

На этом компе под другой учеткой тоже все нормально. 

Подскажите, пожалуйста, в чем проблема и как её решить?

Разработчики, пожалуйста, откликнитесь!

Спасибо!

Подписаться на RSS рассылку

У меня установлена Windows 7 и недавно понадобилось создать базу данных Paradox 7.0. Я создал базу данных, сохранил ее в каталог с программой, выложил на форму компонент Table, указал путь к базе, и при установке свойства Active в True, происходила ошибка. В ошибке говорилось, что файл PDOXUSRS.NET отсутствует на диске C.

Что же это за файл? Этот файл хранит информацию о всех пользователях базы, и создается автоматически СУБД. Но в Windows Vista и Windows 7 доступ к корню диска запрещен, и следовательно создать не получается.

Выход я нашел простой, создал в корне диска папку (например, «DB»), и на всякий случай дал полный доступ группе «Пользователи» к этой папке. Далее заходим в Панель управления -> BDE Administrator.

Далее заходим во вкладку «Configuration», там проходим по пути: Configuration -> Drivers -> Native -> PARADOX. В правой колонке изменяем свойство NET DIR на D:DB и жмем кнопку Apply с изображением синей стрелочки (См. рисунок выше).

Далее перезагружаем операционную систему (хватит выхода из системы). И все заработало.

Кстати, как не странно, я поменял обратно путь на C: и ошибки не происходит.

Pdoxusrs net что это за файл

Есть программа написанная в D7, она работает с базой данных Paradox
Мне необходимо создать два инсталлятора:
1. для сетевого диска
2. для рабочей станции

С первым все просто, инсталлятор копирует все файлы программы на сетевой ресурс, а со вторым сложнее, надо на каждой рабочей станцие произвести установку BDE и создание алиаса. С установкой BDE проблем нет, не знаю как настроить алиас. Я так понимаю надо выводить диалоговое окно, где пользователь будет выбирать путь нахождения базы данных на сетевом ресурсе (типа как в руссификаторе). Подскажите как это лучше сделать и в каком инсталляторе, я сейчас использую Inno Setup.

Отслеживать ответы на этот вопрос по RSS

18-06-2008 15:57

>>> Т.е. на одновременный доступ к приложению значение False никак не повлияет?

Из справки BDE Administrator:
LOCAL SHARE
The ability to share access to local data between an active BDE application and an active non-BDE application. Set to TRUE if you need to work with the same files through both a BDE and a non-BDE application at the same time. (It is not necessary to set LOCAL SHARE to TRUE if you do not need to have both applications open at the same time.) Default: FALSE.

Перевод:
LOCAL SHARE
Возможность разделять доступ к локальным данным между работающим BDE-приложением и работающим не-BDE-приложением. Установите в TRUE, если вам требуется работать с одними и теми-же файлами через BDE- и не-BDE- приложения одновременно. (Нет необходимости устанавливать LOCAL SHARE в TRUE, если у вас нет необходимости открывать оба приложения одновременно.) По умолчанию: FALSE.

Из файла: Program FilesCommon FilesBorland SharedBDEBDE32.HLP
Раздел: Improving BDE performance
All options mentioned below are configurable using the BDE Administrator:
1. Set LOCAL SHARE to False. This option should only be TRUE if both BDE and non-BDE applications are accessing dBASE or Paradox tables simultaneously. Borland products all use the BDE to access Paradox and dBASE tables, so this option can be FALSE if you’re using only Borland applications.
.

Перевод:
Все опции, упомянутые ниже, конфигурируются с помощью BDE Administrator:
1. Установка LOCAL SHARE в False. Эта опция должна быть установлена в TRUE только в одном случае: если BDE- и не-BDE- приложения подключаются к таблицам dBASE или Paradox одновременно. Все продукты Borland для доступа к таблицам Paradox и dBASE используют BDE, поэтому эта опция может быть установлена в FALSE, если вы используете только приложения Borland.
.

Другими словами: эту опцию нужно установить в True только в случае, если, например, вам нужно одновременно работать с одними и теми-же dbf-файлами из программы, написанной на Delphi и из старой досовской программы, написанной на Clipper. При работе с базой данных только программ, написанных на Delphi, устанавливать эту опцию в True нет необходимости.

17-06-2008 11:16

LOCAL SHARE по умолчанию имеет значение False. Насколько я понимаю, это и есть штатный режим, изменять который нет необходимости. Устанавливать LOCAL SHARE в True может потребоваться только при работе с базой данных одновременно из BDE-приложений и не-BDE-приложений, что в вашем случае вряд ли имеет место.

Т.е. на одновременный доступ к приложению значение False никак не повлияет?

14-06-2008 18:24

>>> можно ли таким же образом настроить LangDriver и LocalShare в BDE

При создании таблицы в Database Desktop для неё указывается Table Language. Для русского языка это ‘Pdox ANSI Cyrillic’. При работе с таблицей эта настройка перебивает все остальные и работа с этой таблицей идёт с использованием этого драйвера. В запросах вроде бы используется драйвер исходной таблицы. Поэтому настройки BDE в отношении языка быстрее всего можно оставить по умолчанию. Я в такие дебри раньше не углублялся, поэтому утверждать наверняка не буду, поскольку возможны какие-то нюансы, но на первый взгяд всё выглядит именно так.
LOCAL SHARE по умолчанию имеет значение False. Насколько я понимаю, это и есть штатный режим, изменять который нет необходимости. Устанавливать LOCAL SHARE в True может потребоваться только при работе с базой данных одновременно из BDE-приложений и не-BDE-приложений, что в вашем случае вряд ли имеет место.

нашла статьи про LangDriver, но насколько я поняла даже если прописать его настройку при старте программы, то после этого программу необходимо будет перезапустить, можно ли как-то без этого обойтись или лучше вообще вручную это настраивать?

На мой взгляд, при первом запуске программы вполне допустимо выдать сообщение и попросить перезапустить программу. Это как крайний, но вполне допустимый случай.

Насколько я понял, вопрос собственно установки BDE вы решили, но на всякий случай я всё-таки приведу ссылку: »вопрос КС №27022«
Посмотрите последний на сегодня ответ — вполне рабочий вариант установки BDE при первом запуске приложения, разве что алиас по другому создаётся, но в данном случае это не имеет никакго значения. Пользователь при этом либо должен иметь права администратора, либо запускать пограмму от его имени.
Ещё на всякий случай хочу сказать, что в моём варианте задания алиаса для того, чтобы алиас был доступен в выпадающем списке при назначении его датасету, форма, на которой находится TDataBase, должна быть загружена в среду.
И ещё. Поскольку изначальный вопрос был об установке BDE из под инсталлятора, сгенерированного Inno Setup, то приведу ещё одну ссылку: http://www.jrsoftware.org/iskb.php?bde

11-06-2008 13:34 | Сообщение от автора вопроса

Бел Амор спасибо огромное тебе за помощь, у меня последний вопрос можно ли таким же образом настроить LangDriver и LocalShare в BDE, нашла статьи про LangDriver, но насколько я поняла даже если прописать его настройку при старте программы, то после этого программу необходимо будет перезапустить, можно ли как-то без этого обойтись или лучше вообще вручную это настраивать?

03-06-2008 07:24

Я так поняла Session.NetFileDir := ExtractFileDrive(Application.ExeName) + ‘’; кидает файл PDOXUSRS.NET в корневой каталог диска, на который прога ставится?

Да. Только не кидает, а предписывает создавать его в этом каталоге или использовать уже существующий, если он там есть. PDOXUSRS.NET — это временный файл.
Я смоделировал стандартное поведение BDE, который назначает по умолчанию размещение файла PDOXUSRS.NET в корневом каталоге диска C:
Это явилоь следствием стереотипного поведения и, я думаю, не является оптимальным вариантом. При работе в сети каталог, в котором расположена сама программа, а также предыдущий каталог, вполе могут быть разрешены только для чтения. В этом случае оптимальным местом размещения файла PDOXUSRS.NET был бы каталог, в котором расположена база данных, т.к. этот каталог гарантированно открыт на запись для всех пользователей программы. Код для этого варианта:

procedure TForm1.FormCreate(Sender: TObject);
var
DbPath: String ;
begin
Database1.Close;
DbPath := ExtractFilePath(Application.ExeName) + Database1.Params.Values[ ‘PATH’ ];
Database1.Params.Values[ ‘PATH’ ] := DbPath;
Session.NetFileDir := DbPath;
Database1.Open;
Table1.Open;
end ;

Ещё раз хочу обратить внимание на то, что программы, работающие с одной базой данных через BDE должны:

1. Для доступа к базе данных использовать полностью одинаковый путь (включая букву диска).
2. Использовать один о тот-же файл PDOXUSRS.NET

Чтобы продемонстрировать это на практике, я провёл небольшой эксперимент, который вы можете повторить:

1. Сделал каталог C:TEST_BDE и скопировал туда тестовую программу, использующую вышеприведённый код для назначения путей.
2. Сделал два виртуальных диска ( V: и W: ), выполнив в командной строке команды:

subst v: C:TEST_BDE
subst w: C:TEST_BDE

3. Запустил два экземпляра тестовой программы: один — с диска V: , а другой — с диска W: При этом использовался один и тот-же файл PDOXUSRS.NET, но доступ к базе данных осуществлялся по разным путям (не совпадали буквы дисков). Блокировки записей не происходило. BDE не препятствовал редактированию одной и той-же записи сразу из двух программ.
4. При запуске двух экземпляров программы с одного диска блокировка записи происходила и BDE не позволял редактировать одну и ту-же запись одновременно из двух программ.

02-06-2008 13:52 | Сообщение от автора вопроса

Разобралась, это Vista блокировала доступ к диску C:
Поставила на другой и все заработало.
Я так поняла Session.NetFileDir := ExtractFileDrive(Application.ExeName) + ‘’; кидает файл PDOXUSRS.NET в корневой каталог диска, на который прога ставится?

02-06-2008 13:37

Блин при запуске все равно ошибку выдает:(
Network initialization failed
File or directory does not exist
File C:PDOXUSRS.NET
Permission denided
Directory C:.

02-06-2008 09:55

Хм. Странно. Два перевода строк съелись. Возможно, с каким-то тэгом совпало. Повторим, заменив русской буквой:

. например Х:, либо через сетевое имя:
1. Х:
2. \Server1CommonPrograms

. приведёт к назначению NET DIR:
1. Х:2. \Server1CommonPrograms

02-06-2008 07:45

‘\CompNameSharedDirName’
Что это за путь?

UNC — Universal Naming Convention — соглашение о сетевых именах
Принцип:
\ИмяКомпьютераИмяОбщегоРесурса

Если на компьютере Server1 имеется каталог C:CommonPrograms, к которому открыт общий доступ под именем CommonPrograms, то обращаться к этому каталогу с других компьютеров можно либо назначив сетевому ресурсу букву, например X:, либо через сетевое имя:
1. X:2. \Server1CommonPrograms
Во втором варианте букву назначать не требуется.
В обоих этих случаях идёт обращение к каталогу C:CommonPrograms на компьютере Server1. Но в первом случае буквы на пользовательских компьютерах могут быть разными, а во втором — всё единообразно.
Допустим, программа расположена в каталоге C:CommonProgramsSklad и исполняемый файл имеет имя SuperSklad.exe
Тогда при запуске программы полное имя файла внутри программы будет определено как:
1. X:SkladSuperSklad.exe
2. \Server1CommonProgramsSkladSuperSklad.exe
Функции Delphi, работающие с именами файлов, понимают оба способа. При этом код:

приведёт к назначению NET DIR:
1. X:2. \Server1CommonPrograms

02-06-2008 05:22 | Сообщение от автора вопроса

‘\CompNameSharedDirName’
Что это за путь?

02-06-2008 04:01

То есть если к примеру сетевой ресурс, на котором находится программа у всех пользователей обозначен разными сетевыми дисками, то программа работать не будет или я неправильно поняла?

В файле PDOXUSRS.NET хранится информация о блокировках. Если буквы будут разные, то BDE не поймёт, что блокировка относится к одной и той-же таблице. Возможно, более безопасным способом запуска будет указание не через диск, а через UNC:

В этом случае разночтений быть не должно: NetFileDir = ‘\CompNameSharedDirName’

02-06-2008 03:34 | Сообщение от автора вопроса

Только надо учесть, что все пользователи должны подключаться одинаково:
1. Если через имя компьютера — то все через имя компьютера.
2. Если через букву — все через букву, причём у всех буква должна быть одинакова.

То есть если к примеру сетевой ресурс, на котором находится программа у всех пользователей обозначен разными сетевыми дисками, то программа работать не будет или я неправильно поняла?

01-06-2008 13:42

Как по аналогии:
прописать путь к директории Net DIR?

Только надо учесть, что все пользователи должны подключаться одинаково:
1. Если через имя компьютера — то все через имя компьютера.
2. Если через букву — все через букву, причём у всех буква должна быть одинакова.

01-06-2008 08:32 | Сообщение от автора вопроса

Как по аналогии:

Database1.Params.Values[‘PATH’] :=
ExtractFilePath(Application.ExeName) + Database1.Params.Values[‘PATH’];

прописать путь к директории Net DIR?

20-05-2008 06:24 | Комментарий к предыдущим ответам

Бел Амор
Огромное спасибо за помощь! Проблема решена!

20-05-2008 05:59

Ваша задача состоит из двух пунктов:

1. Узнать путь к каталогу базы данных.
2. Создать временный алиас.

Если исполняемый файл запускается с сервера и расположение каталога базы данных детерминировано относительно него, то этот каталог легко найти в рантайме и нет необходимости его где-то прописывать.

Как это сделать:

1. Помещаем на дата-модуль TDataBase и всё остальное как обычно.
2. Двойным кликом по TDataBase открываем окно параметров
3. В нём заполняем поля:
Name — SUPER_DB — имя базы данных (временный алиас)
Driver name — STANDARD
Alias name — не заполняем
4. Нажимаем кнопку Defaults, список параметров заполняется параметрами по умолчанию:

PATH=
DEFAULT DRIVER=PARADOX
ENABLE BCD=FALSE

5. Указываем относительный путь к базе данных:

PATH= DB
DEFAULT DRIVER=PARADOX
ENABLE BCD=FALSE

6. Добавляем, если надо, другие параметры.
7. Сохраняем.
8. Таблице указываем DatabaseName := SUPER_DB
9. Настраиваем дальнейшую цепочку как обычно.
10. В подходящем месте, например, в конструкторе дата-модуля, заменяем относительный путь на полный.

Выглядеть это может приблизительно так:

procedure TForm1.FormCreate(Sender: TObject);
begin
Database1.Close;
Database1.Params.Values[ ‘PATH’ ] :=
ExtractFilePath(Application.ExeName) + Database1.Params.Values[ ‘PATH’ ];
Database1.Open;
Table1.Open;
end ;

20-05-2008 05:57 | Сообщение от автора вопроса

Была у такая идея написать програмку, кинуть ее при установке на сетевой ресурс вместе с файлами программы и запускать с каждой рабочей станции

Сама програмка будет:

0.Выводить ярлык программы
1.Проверять реестр на наличие BDE
2.Если нет, устанавливать
3.Создавать алиас и делать настройки с помощью компонента Database

Подскажите можно ли все это реализовать?

20-05-2008 04:38 | Сообщение от автора вопроса

То есть в свойстве DatabaseName всех tableов прописать каталог нахождения программы .DB?
Еще вопрос: необходимо также на каждой рабочей станцие сделать некоторые настройки BDE: NetDir, LangDriver и LocalShare. Как их задать? Программно?

20-05-2008 04:24

Лучше вообще отказаться от алиаса, убрать его название в свойствах компонент баз данных.
Тогда его и устанавливать не нужно будет. Если вы указываете путь к базе данных, то есть к определенным файлам таблиц, тогда зачем вам алиас?

Страница избранных вопросов Круглого стола.

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Не возможен доступ к PDOXUSRS.NET

На одном и том же компьютере, но под другой учетной записью, попытался войти в Инфо-Бухгалтер 8. Начались проблемы.

Сначала был долгий поиск ключа, нахождение и предложение перезаписать ключ (код ответ и код вопрос). Техподдержка рекомендовала сделать это.

Далее стала возникать ошибка: Не возможен доступ к PDOXUSRS.NET. Удаление этого файла не помогло.

В bde на всех компах конфиг одинаковый. Другие пользователи входят без проблем.

На этом компе под другой учеткой тоже все нормально.

Подскажите, пожалуйста, в чем проблема и как её решить?

Разработчики, пожалуйста, откликнитесь!

  • 279 просмотров

Может быть несколько причин.

1. Был сбой компьютера. Поэтому на компьютере остались не удаленными файлы PARADOX.LCK и PDOXUSRS.LCK.

Найти на компьютере с помощью функции Найти файлы с расширение lck (в том числе и в скрытых папках) и удалить их.

Скорее всего, причина именно в этом.

2. Если у Вас сетевая версия, то невозможен доступ к сетевому диску, на который записывается файл, к которому нет доступа.

    или зарегистрируйтесь, чтобы оставлять комментарии

Посмотрите права доступа для этой учётной записи, войдя под ней.

В папке, в которой установлена программа, и в папке BDE.

Если не получится, то позвоните по +7-925-507-42-82. Могу подключиться.

    или зарегистрируйтесь, чтобы оставлять комментарии

Вопрос с доступом к PDOXUSRS.NET решился настройкой полного доступа к сетевому диску.

Я было возрадовался. Вход в Инфо-Бухгалтер под новой учеткой выполняется без проблем, но при попытке сформировать счет вылетает ошибка:

Невозможно получить полный доступ к базе SF_TOP.IBL :(32,2228).

Удаление файлов с расширениями px, xo, yoa и т.д. не дало положительных результатов.

Удаление и копирование базы из-под проблемной учетки тоже не помогло.

Файлы и папки на сетевом диске удаляются и переименовываются.

Однако при попытке сформировать проводку в ручную ошибок не возникает.

Сообщение типа «File: C:PDOXUSRS.NET» связано с ограниченными правами на компьютере.

Для работы программ достаточно прав пользователя, однако должны быть открыты для записи каталоги программ, рабочие каталоги программ, каталог C:Integral.Ltd и следующие ветки реестра:

1. HKEY_LOCAL_MACHINESOFTWAREIntegral.
2. HKEY_CURRENT_USERSOFTWAREIntegral.

Так же рекомендуем удалить данные из папок

HKEY_CURRENT_USERSoftwareIntegralKeys и
HKEY_LOCAL_MASHINESoftwareIntegralKeys.

В любом случае устанавливать программы и драйвер электронного ключа необходимо с полными правами администратора.

Файл PDOXUSRS.NET в любом случае записывается на диск С, поэтому следует предпринять действия по переносу этого файла в каталог C:Integral.Ltd.

Нужно инсталлировать с дистрибутивного CD-диска из каталога BDE5. Либо загрузить BDE отсюда.

После этого в панели инструментов, черед BDEAdmin перенесите файл PDOXUSRS.NET в каталог C:INTEGRAL.LTD (см. рис.).

13.jpg
13.jpg (34.77 КБ) 3790 просмотров

Может кто встречался с этой проблемой: суть заключается в том что при использовании баз данных Paradox по сети возникает вот эта ошибка?

4 ответа

1

01 июня 2010 года

kot_

7.3K / / 20.01.2000

Если проблема возникает переодически — проблема в совместном доступе к файлу Pdoxusrs.net — обрабатывайте ошибку и пробуйте снова. В противном случае — у пользователя, которым вы подключаетесь нет прав на запись в папку, которая указана как NET DIR.

На машине к которой пробую подключиться папку с базами расшарил для полного доступа.
Там же сделал BDE: Configaration->System->Init->Local Share = True
После установки этой настройки появилась следующая ошибка

Directory is controlled by other .NET file.
Directory: C:NETS
File:\192.168.1.6jobPDOUSRS.LCK

Если ставлю Configaration->System->Init->Local Share = False
и запускаю программу на машине-владельце баз данных (но подключаюсь к ней по сети то программа работает без сбоев)

1

01 июня 2010 года

kot_

7.3K / / 20.01.2000

удалите все файлы с расширениями lck & net в этой папке

1

01 июня 2010 года

kot_

7.3K / / 20.01.2000

и соотвественно проверьте, что NET DIR одинакова на всех машинах. Для этого ее необходимо подключать как сетевой диск.

Если вы запустили программу, использующую базу данных Paradox, и получили следующие сообщение об ошибке: «Произошла ошибка при работе с BDE! Network initialization failed. Permission denied. File: C:PDOXUSRS.NET Directory: C:» (Смотрите рисунок 1), то это сообщение означает, что BDE движок доступа к базе данных Paradox не может создать файл хранения информации о пользователях базы с именем PDOXUSRS.NET на разделе C:  жесткого диска из-за ограниченного доступа на запись в корень диска.

Рисунок 1. Сообщение об ошибке BDE Paradox

Для исправления этой ошибки необходимо:

1. Создать новую директорию в любом месте жесткого диска, там где у вас есть права на запись. Например, D:BDEShare.

2. Запустить утилиту BDE Administrator из пути: C:Program Files (x86)Common FilesBorland SharedBDEBDEADMIN.EXE или из «Панель управления», потом BDE Administrator.

3. Далее переходите Configuration -> Drivers -> Native -> Paradox

4. Для ключа NET DIR указываем путь до D:BDEShare (Смотрите рисунок 2)

5. Сохраняем в утилите  BDE Administrator все внесенные изменения

6. Закрываем утилиту

7. Запускаем программу использующую базу данных Paradox

Рисунок 2. Внешний вид утилиты BDE Administrator

Настройка велась в Windwos 10 64 bit. 

Понравилась статья? Поделить с друзьями:
  • Ошибка pdl на принтере xerox
  • Ошибка pattern not found
  • Ошибка pabg shield
  • Ошибка pdl xerox 3615
  • Ошибка passenger airbag