• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

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

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Проблема при отладке работы библиотеки с базой

Автор Иван Ю., 10.08.11, 14:25:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Иван Ю.

Возникла проблема - кто может помочь?
Необходимо сделать библиотеку на Delphi, которая будет считывать радиус из базы данных (Firebird) и рисовать им окружность.
Исходный код проекта содержится в приложении.
Проблема в том, что при подгрузке библиотеки в Компасе в процессе работы возникает ошибка чтения\записи, также ошибка возникает при убирании галочки об активности библиотеки в менеджере библиотек.

основной код содержится в former.pas.
Если задавать радиус явно, не читая с базы, то окружность рисуется. Однако при выгружении библиотеки из менеджера библиотек все равно происходит ошибка. До накидывания компонентов, реализующих связь с базой - все работало нормально.
Если создать отдельный проект - некомпасовский а чисто делфи с ехе файлом, то операция считывания из базы проходит успешно.

Ошибка скорее всего из-за того, что DDL работает с двумя потоками Компасом и базой данных, а для каждого потока в памяти 32-разрядных систем будет размещено два экземпляра библиотеки с абсолютно разными переменными, поэтому нужна синхронизация. Если есть книга "Руководство разработчика", то можете там почитать, но я могу и ошибаться.

Иван Ю.

К сожалению книги нет.
Где ее можно взять, и в каком разделе там искать?

Николай

Перерыл интернет, "Руководство разработчика" тоже не нашёл. Везде только  "Руководство пользователя". Может, такого "руководства и нет вовсе?