MS SQL 7.0 и Borland BDE 5.01: как убрать ошибку???

Oleg F
Дата: 26.02.2001 15:36:09
Столкнулся с проблемой одновременного сосуществования в многозадачной среде Windows различных программ, написанных на Delphi и работающих через BDE (и SQL Links) и SQL Server 7.0.
Если запущена одна программа и подсоединена к БД, то попытка присоединиться к БД из другой программы ведёт к ошибке "An error occured while attempting to initialize the Borlland Database Engine (error $210D)". Стоит отсоединиться первой программе, как вторая нормально подсоединяется.

Замечены следующие закономерности.
1. Происходит это на Windows NT 4.0 (на Windows 95 и 98 всё в порядке, Windows2000 не пробовал).
2. Проблемы возникают только с теми программами, которые используют кэшированные апдейты (т.е. свойство CashUpdates в TQuery и объект TUpdateSQL). Те программы, которые не используют кэшированные апдейты, нормально сосуществуют друг с другом.

Прошу, если кто знает, помочь мне. Может в настройках BDE какой-нибудь параметр поменять?
Просьба не давать советов типа "используй ADO" или "откажись от кэшированных апдейтов и использую вместо них временные таблицы". Дело в том, что нет не времени не возможности переписывать эти программы, которые серьёзно завязаны на cash updates.
bserg
Дата: 27.02.2001 08:42:01
При работе с подключениями через BDE в программе создается временный TSession. Для исключения проблем необходимо явно создать TSession и для всех TQuery указать ссылку на него.
Oleg F
Дата: 27.02.2001 14:32:24
Спасибо, я попробую. У меня сейчас везде стоит Query.Session = Default
bbm
Дата: 09.03.2004 13:37:41
Встретился с такой же ошибкой (210D). В документации трактуется как конфликт при доступе к памяти совместного доступа (error Shared Memory Conflict ($210D, 8461)). И поведение похоже. Загружается первая программа(всё нормально).
Загружается вторая. При инициализации выдаёт ($210D). Если в этот момент закрыть первую программу, то загрузка второй завершиться успешно. При этом. Если теперь запустить первую программу, а затем выгрузить вторую (которая давала ошибку) и загрузить её снова , то загрузка пройдёт успешно.
Та же ситуация возникает при инициализации BDE в оболочке Delphi(5 и 6).

Решение нашёл в параметрах конфигурации BDE
Configuration\SYSTEM\INIT\
параметр SHAREDMEMLOCATION

NT 2000 Ru
значение увеличивал с 1000 с шагом 1000 на 3000 ошибка исчезла