При запущенном Access ошибка открытия BDE

пользователь
Регистрация: 01.03.2016

На ПК установлена Windows 7 x64.

При запущенном Access документе Инфо-Бухгалтер
выдает ошибку открытия BDE (скрин прикладываю).
Как только закрываю Access,
Инфо-Бухгалтер открывается нормально, ошибок не выдает.

Если сначала открываешь Инфо-Бухгалтер,
а потом базу Access (тот же самый документ),
то они работаю нормально в паре.

Можно как-то исправить, чтобы две программы работали нормально?

Вложения
oshibka.jpg162 КБ
модератор
Регистрация: 06.09.2007

В справке Инфо-Бухгалтера 8 посмотрите статью "Настройки BDE"
(введите в поле поиска в панели инструментов окна справки).
Обратите внимание на настройки разделяемой памяти (shared memory).

Вкратце, надо изменять параметр SHAREDMEMLOCATION до исчезновения конфликта.

пользователь
Регистрация: 01.03.2016

Добрый день!

Нашел этот параметр в настройка BDE, экспериментировал со значениями SHAREDMEMLOCATION(1000,3000,4000,3BDE,4BDE,9BDE, и т.д.).
Ошибка осталась...

Установил значение SHAREDMEMLOCATION на 2BDE.
Теперь то открывается, то нет, через раз.
Но прогресс есть...

При запущенном BDEADMIN и не важно, какой стоит параметр SHAREDMEMLOCATION,
обе программы открыватся нормально без ошибок.
При чем не важно, в какой последовательности.
Как только закрываю BDEADMIN, опять ошибка...

Прин скрин прикпрепляю.
Может кто сталкивался?
Что еще можно сделать?

модератор
Регистрация: 06.09.2007

Нашел этот параметр в настройка BDE, экспериментировал со значениями SHAREDMEMLOCATION(1000,3000,4000,3BDE,4BDE,9BDE, и т.д.).
Ошибка осталась...

Больше 4A00 лучше не ставить, а то будут конфликты с DLL-ями,
которые там располагает загрузчик Windows.
2BDE - это значение по умолчанию, которое ставит Инфо-Бухгалтер.
Я бы попробовал близкие значения: 2000, 2100, 2200...
Надо найти свободное окошко а общем адресном пространстве.
Требования к окошку можно понизить, уменьшив его размер.
Попробуйте поставить SHAREDMEMSIZE = 2048.

BDEADMIN с правами Администратора запускаете?

пользователь
Регистрация: 01.03.2016

Запускаю BDEADMIN с правами администратора.
Значения SHAREDMEMLOCATION ставил 2000, 2100, 2500, 2700, 2900.
Ошибка осталась.
Понижал SHAREDMEMSIZE = 2048 все так же....

Есть еще идеи?
Прин скрин прикрепляю.

модератор
Регистрация: 06.09.2007

Проверьте, что Инфо-Бухгалтер видит эти же значения.
Справка->Компьютер->Кнопка BDE.
Если там другие значения видны, то поставьте галочки и нажмите кнопку "Исправить".

Настройки BDE могут быть в трех разных местах:
- в реестре
- в файле С:\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG
- в файле <Пользователь>\AppData\Local\VirtualStore\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG

Нажатие на кнопку Исправить синхронизирует реестр и IDAPI.CFG и очищает VirtualStore.

пользователь
Регистрация: 01.03.2016

Проверил Инфо-Бухгалтер.
Он значения видит, верные галочки не пришлось ставить нигде.
Но кнопку Исправить все равно нажал ))))

По пути c:\Максим\AppData\Local\VirtualStore\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG нет такого файла.

модератор
Регистрация: 06.09.2007

По пути c:\Максим\AppData\Local\VirtualStore\Program Files (x86)\Borland\Common Files\BDE\IDAPI.CFG нет такого файла.

Я же написал - могут.
Он там появится, если BDEADMIN не из-под администратора запускался хоть раз.
Причем, Инфо-Бухгалтер будет видеть настройки из файла в VirtualStore.

Значения SHAREDMEMLOCATION ставил 2000,2100,2500,2700,2900 ошибка осталась. Понижал SHAREDMEMSIZE = 2048 все так же.... Есть еще идеи?

Скачайте программку VMMap здесь.
При запуске выбираете процесс Инфо-Бухгалтера и смотрите блоки памяти, которые shareable.
Аналогично смотрите для Access.

http://www.ib.ru/sites/default/files/attachments/vmmap.png

модератор
Регистрация: 06.09.2007

Нда... Очень странно ведет себя BDE.
Значения, которые я устанавливаю в BDEADMIN (под адм.), попадают в IDAPI.CFG, но не в реестр.
Программы по факту используют значения из реестра, а не из IDAPI.CFG...
Это показывает программа VMMap.

По кнопке "Исправить" в Инфо-Бухгалтере значения устанавливаются и в IDAPI.CFG, и в реестр.
Но тут принудительно устанавливается рекомендуемые значения 2BDE и 32768,
которые в данном случае нас не устраивают.

Вижу выход только в одном.
Руками в реестре поставить нужные значения, а не через BDEADMIN.
Я для эксперимента поставил в
HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\SYSTEM\INIT
SHAREDMEMLOCATION=1200
SHAREDMEMSIZE=4096

и VMMap увидела эти изменения в адресном пространстве Инфо-Бухгалтера:

http://www.ib.ru/sites/default/files/attachments/vmmap2.png