Ошибки базы данных в демонстрационных программах Quantum Grid в Delphi XE Professional

Всякий раз, когда я открываю одну из демонстраций Quantum Grid в Delphi XE Pro (в Windows 7 32-разрядная версия), для каждой таблицы (я думаю) в проекте отображается следующая ошибка:

http://www.tranglos.com/img/qgerror.png

Сообщение:

Network initialization failed.
File or directory does not exist.
File: C:\PDOXUSRS.NET
Permission denied.
Directory: C:\.

Я понимаю проблемы с разрешением записи в c:\, но в результате я могу создавать и запускать демонстрационные проекты, но данные не отображаются, что делает демонстрации довольно бесполезными. И какая база данных в любом случае записывает свою конфигурацию в каталог c: \ в 21 веке?:) (Да, я очень мало знаю о базах данных Paradox, но я тоже никогда не буду их использовать. Я просто хочу научиться пользоваться сеткой.)

Используя BDE Administrator, я попытался изменить значение Paradox "NET DIR" на папку с правами записи на диске C. Результат: теперь таблицы базы данных не могут найти свои данные:

Path not found.
File: C:..\..\Data\GENRES.DB.

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

Есть ли способ обойти эту проблему, чтобы демо-версии могли правильно загружать свои образцы данных?

3 ответа

Решение

Использование BDE Admin для изменения местоположения для PDOXUSRS.NET помогло, но этого было недостаточно. DevExpress правильно сделал, указав относительную папку для местоположения данных, и относительная папка выглядит совершенно нормально, но по какой-то причине БД не может ее найти.

Решение: в папке \ Demos \ найдите все файлы *.dfm, содержащие строку

..\..\Data

и замените эту строку абсолютным путем к папке demos. Что сделано, все демо открываются правильно.

Вы правильно установили BDE? Следует использовать файлы DBDEMOS. Вы видите такой псевдоним в утилите администрирования BDE? Можете ли вы открыть эту базу данных в одной из демонстраций Delphi?

БДЭ не является базой данных XXI века, она была разработана двадцать лет назад и никогда не обновлялась в последнее время. Это устаревшая технология, но поскольку она поставляется с каждым выпуском Delphi с известной базой данных, она все еще часто используется в демоверсиях, поскольку не нужно устанавливать ничего нового.

В любом случае, этот файл не является файлом конфигурации. Это файл блокировки общего доступа, позволяющий нескольким пользователям одновременно использовать базу данных. Поскольку это файловая база данных без центрального сервера, она должна использовать такие общие файлы. Обычно его позиция изменяется на сетевой ресурс, но по умолчанию это C:\.

Во всяком случае, не только BDE все еще пытается писать в каталогах зубцов. Я все еще вижу множество приложений, пытающихся записать в C:\ (особенно в журналы) или в другие позиции, доступные только для чтения.

Я знаю это сообщение из наших собственных приложений. Это связано с мерами безопасности, введенными в Windows Vista. Операционная система, пытающаяся защитить критические файлы, запрещает доступ к ним. Есть способ, как обойти этот механизм без ущерба для безопасности. Попробуйте запустить приложение в режиме совместимости. Когда приложение работает в режиме совместимости, операции чтения / записи из / в системные папки перенаправляются в "безопасные" каталоги, расположенные в C:\Users[текущий пользователь]\AppData\Local\VirtualStore. Более подробная информация на http://www.windowsecurity.com/articles/Protecting-System-Files-UAC-Virtualization-Part1.html.

Другие вопросы по тегам