Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Вниз

DLL+ADO+MSSQL   Найти похожие ветки 

 
oss   (2002-04-25 01:27) [0]

Вопрос вот в чем. Есть DLL в которой несколько форм и свой датамодуль с набором ADO (Query,dataset & etc). И все бы хорошо,
но при попытке сделать POST , DLL выдает ошибку типа "Ощибка оращения к памяти и т.п.". Причем при попытке сделать вставку или апдейт в процедуре, которая экспортируется все ОК, а при попытке сделать это с помощью формы самой DLLи лезет ошибка.
Может ко подскажет выход или предложит идею ? заранее благодарен


 
Dy-Ty   (2002-04-25 09:24) [1]

Скорее всего не с инициализирован COM-объект
попробуй так

CoInitialize(nil)
........
?????????
{и какая-то вторая функция, которая убивает этот COM-объект, подробнее смотри MSDN}

удачи....


 
oss   (2002-04-25 11:10) [2]

возможно, но у меня вообще нет комов, обичная ДЛЛя.
Access violation at adress ... in module "....DLL"


 
Nebuchadnezzar   (2002-04-25 15:31) [3]

не важно что твоя DLL не COM-объект... ADO использует их...
попробуй CoInitialize(nil);


 
oss   (2002-04-25 18:16) [4]

хорошо, но где это пробывать ?!


 
Merle Corey   (2002-04-25 20:40) [5]

У меня есть ф-ция
implementation
. . .
var
FCoInitialized: Boolean = False;
. . .
procedure ReCoInitialize;
begin
if FCoInitialized then CoUninitialize; // Или как там ее
CoInitualize(nil);
FCoInitialized := True;
end;
. . .

И вызываешь ее перед каждым обращением к ADO-компанентам.


 
Merle Corey   (2002-04-25 20:43) [6]

Забыл отметить, что такой способ (см. выше) предпочтительнее использовать в MultiThreads приложениях. Для DLL возможно достаточно будет одно вызова.


 
oss   (2002-04-26 10:12) [7]

и еще один вопрос - сами по себе CoUninitialize и CoInitualize не определенные функции, а из какой они библиотеки , юнита ?


 
Dy-Ty   (2002-04-26 11:02) [8]

Поробуй подключить "ActiveX.pas"


 
oss   (2002-04-26 11:25) [9]

ну блина... делаю
> ReCoInitialize;
> m_db2.q_risk.close;
и на Close лезет ошибка !!!
Access violation ... in module xxx.dll



 
oss   (2002-04-26 12:26) [10]

Дополнение:
проблема обусловлена тем, что при попытке выполнить действия с каким-либо компонентом расположенным на другой форме, не своей, и лезет ошибка. пример:
form1.edit.text:="sdsd", а пишу я это в модуле form2,
обе формы в одном ДЛЛе и созданы


 
Merle Corey   (2002-04-26 12:59) [11]

проверь...
. . .
if assigned(form1) then form1.edit.text = "Hello"
else ShowMessage("form1 is null");
. . .


 
Merle Corey   (2002-04-26 13:00) [12]

В DLL формы автоматически не создаются ( информация к размышления)


 
oss   (2002-04-26 13:45) [13]

я знаю что не оздаются, я их все создал.
пример я неудачно привел,
такойже только вместо edita взять ADOQuery и пытаться ее открыть


 
oss   (2002-04-29 11:30) [14]

.


 
oss   (2002-04-29 11:30) [15]

...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
1-39706
zje
2002-04-29 17:00
2002.05.13
RichEdit


14-39859
Кандыль
2002-04-03 17:32
2002.05.13
Где в реестре хранится имя папки...


1-39785
Пивоман
2002-04-28 21:16
2002.05.13
TTimer без TForm


1-39696
Riko
2002-04-29 15:00
2002.05.13
Как программно включить Отображение всех файлов?


1-39782
Explorer
2002-04-27 15:20
2002.05.13
EhLib





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский