C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 Здравствуйте, гость ( Вход | Регистрация )   Скачать форум | Поиск по Форуму | Участники | Помощь
 Поиск по:   сайтy   
   архиву форума   
  ОтветитьНовая тема
вызов ADO из DLL
« предыдущая тема | следующая тема » Подписаться на тему | Отправить тему на E-mail | Распечатать тему
slavic
Отправлено: 21.03.2007, 23:52 Цитировать


Ученик-кочегар


Группа: Участник
Сообщений: 6
Пользователь № 4397
Регистрация: 18.02.07



сделал dll-ку, в которой есть функция использующая ADOQuery, ADOConnection, ADOTable.

не без трудностей, но скомпилировал.

Теперь подгружаю ее из другой программы, пишет Access violation... sad.gif

В чем может быть дело?

1) статически функция, использующая адо, работала. т.е. подобных ошибок не возникало. так что сама функция абсолютна верна.
2) в данный момент к dll-ке при построении добавлены библиотеки (vcl.lib, odbc32.dll, adortl.lib). Может еще надо добавить?
3) dll-ка подгружается динамически (loadlibrary)
4) дело точно в адо, т.к. до места с адо все из длл-ки выполняется.
 
Послать сообщение E-mail адрес  Top
olegenty
Отправлено: 22.03.2007, 09:40 Цитировать


Ветеран


Группа: Модератор
Сообщений: 2412
Пользователь № 507
Регистрация: 13.02.04



Для ответа недостаточно данных. включи отладчик и посмотри, где AV происходит. Тогда всё станет понятно.

--------------------
Управлять можно лишь тем, что можно измерить.
Восточная мудрость.
 
Послать сообщение E-mail адрес ICQ  Top
Guest
Отправлено: 22.03.2007, 11:47 Цитировать


Unregistered









по-моему, всё понятно.
в виде приложения все работало, в длл-ке перестало.

ошибка на компонентах АДО.

что дописать? как исправить?
 
Top
olegenty
Отправлено: 23.03.2007, 08:47 Цитировать


Ветеран


Группа: Модератор
Сообщений: 2412
Пользователь № 507
Регистрация: 13.02.04



сорцы, может, в студию? а то тут телепатов нет.

--------------------
Управлять можно лишь тем, что можно измерить.
Восточная мудрость.
 
Послать сообщение E-mail адрес ICQ  Top
Ramzay
Отправлено: 23.03.2007, 21:03 Цитировать


Дежурный стрелочник


Группа: Участник
Сообщений: 31
Пользователь № 3586
Регистрация: 31.12.06



Трудно так сказать, информации маловато. Но то что должно работать - это точно. У меня была похожая проблема, победил так:

CODE
CoInitialize(NULL);
ADOQuery=new TADOQuery(NULL);
 
Послать сообщение E-mail адрес  Top
Admin
Отправлено: 23.03.2007, 21:18 Цитировать


Владимир


Группа: Администратор
Сообщений: 1190
Пользователь № 1
Регистрация: 17.11.02



QUOTE
сделал dll-ку, в которой есть функция использующая ADOQuery, ADOConnection, ADOTable.


При использовании ADOQuery, ADOConnection, ADOTable - где они
создаются ?

--------------------

Но настанет пора, и проснется народ, разогнет он могучую спину,
И на бар и царя, на попов и господ он отыщет покрепче дубину.
 
Послать сообщение E-mail адрес Домашняя страница  Top
olegenty
Отправлено: 24.03.2007, 08:06 Цитировать


Ветеран


Группа: Модератор
Сообщений: 2412
Пользователь № 507
Регистрация: 13.02.04



на модуле данных smile.gif
который не проинициализирован (в смысле - не создан smile.gif )

--------------------
Управлять можно лишь тем, что можно измерить.
Восточная мудрость.
 
Послать сообщение E-mail адрес ICQ  Top
slavic
Отправлено: 24.03.2007, 09:42 Цитировать


Ученик-кочегар


Группа: Участник
Сообщений: 6
Пользователь № 4397
Регистрация: 18.02.07



Проблема решилась. Нужно проверить 2 вещи.

1. Добавить выделение памяти для объектов
TADOConnection *ADOConnection1=new TADOConnection(NULL);
TADOQuery *ADOQuery1=new TADOQuery(NULL);

2. Если потребуется добавить еще и инициализацию ком-объекта
CoInitialize(NULL);


Спасибо всем!
 
Послать сообщение E-mail адрес  Top
7 ответов с: 21.03.2007, 23:52 Подписаться на тему | Отправить тему на E-mail | Распечатать тему

Back to Работа с базами данных в C++Builder
ОтветитьНовая тема