TADOTable в DLL
От: Tester2  
Дата: 23.09.04 14:21
Оценка:
Добрый localtime, ALL

в коде инициализации dll есть код:

      adotable:=TADOTable.Create(Application);
      with adotable do
      try
        ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Файлы dBASE;DBQ=C:\...;DefaultDir=C:\...;DriverId=533;MaxBufferSize=2048;PageTimeout=5;"';
        CursorType := ctStatic;
        TableName:='mytable';
        try
          Active:=true;
        except
        end;
      finally
        free
      end;


проблема в том что прога виснет на строке Active:=true;
это происходит только если открывать DBF файлы, если подключаться к MSSQL то нормально все проходит.
этот же код просто в приложении для обоих типов драйверов (dbf, mssql) отрабатывает нормально.

coinitialize ессно делаю в начале dll.

в чем грабли?
--
заранее благодарен
Re: TADOTable в DLL
От: DNSokol Россия  
Дата: 23.09.04 19:45
Оценка:
Здравствуйте, Tester2, Вы писали:

[skip]

сранно. таких граблей не встречал. Поэтому есть только предположение — а Application чей? dll-ки или основного приложения?
Re[2]: TADOTable в DLL
От: Tester2  
Дата: 24.09.04 05:26
Оценка:
Здравствуйте, DNSokol, Вы писали:

DNS>сранно. таких граблей не встречал. Поэтому есть только предположение — а Application чей? dll-ки или основного приложения?


хм....вот это я не проверил...
я просто добавил в dll в uses модуль Forms
и взял Application
Похоже это dll-ный...

а как взять приложения?
--
спасибо
Re[3]: TADOTable в DLL
От: kavlad Россия http://www.wavesoft.ru
Дата: 24.09.04 05:52
Оценка:
Здравствуйте, Tester2, Вы писали:

T>а как взять приложения?


Передать ссылку в dll. Слелай в ней какую-нибудь функцию Init(App: Pointer) и вызывай ее перед использованием остальных экспортируемых функций.
... По ушам лупит "Мастер — Мастер" ...
Re: TADOTable в DLL
От: Sinclair Россия https://github.com/evilguest/
Дата: 24.09.04 06:20
Оценка: +1
Здравствуйте, Tester2, Вы писали:
T>в коде инициализации dll есть код:
T> adotable:=TADOTable.Create(Application);
Уж сколько раз твердили миру... Ну зачем вам DLL? Мыши плакали, кололись, но продолжали жрать кактус. При вынесении части функциональности Delphi-приложения удобнее делать BPL. Если, конечно, не стремиться к нестандартному сексу.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: TADOTable в DLL
От: kavlad Россия http://www.wavesoft.ru
Дата: 24.09.04 06:34
Оценка:
Здравствуйте, Tester2, Вы писали:

T>в чем грабли?


Возможно поможет это обсуждение
... По ушам лупит "Paradise Lost — Two Worlds" ...
Re[2]: TADOTable в DLL
От: Diouzshev Россия  
Дата: 24.09.04 07:40
Оценка:
Hello, Sinclair!
You wrote on Fri, 24 Sep 2004 06:20:13 GMT:

S> Здравствуйте, Tester2, Вы писали:

T>> в коде инициализации dll есть код:
T>> adotable:=TADOTable.Create(Application);
S> Уж сколько раз твердили миру... Ну зачем вам DLL? Мыши плакали,
S> кололись, но продолжали жрать кактус. При вынесении части
S> функциональности Delphi-приложения удобнее делать BPL. Если, конечно,
S> не стремиться к нестандартному сексу.

Вышенаписанное отностися только к VCL и особенно uses Forms в dll %)))
Подробнее можно почитать на delphi.about.com там есть статейка DLL vs BPL...

With best regards, Alexander Diouzshev-Maltsev.
Posted via RSDN NNTP Server 1.9 gamma
Re[4]: TADOTable в DLL
От: Diouzshev Россия  
Дата: 24.09.04 07:45
Оценка:
Hello, kavlad!
You wrote on Fri, 24 Sep 2004 05:52:13 GMT:

k> Здравствуйте, Tester2, Вы писали:


T>> а как взять приложения?


k> Передать ссылку в dll. Слелай в ней какую-нибудь функцию Init(App:

k> Pointer) и вызывай ее перед использованием остальных экспортируемых
k> функций.

Не пойму, что мешает сделать MyTable := TADOTable.Create(nil)
ты же все равно его ручками разрушаешь....

И, по-моему не ссылку передают, а Application.Handle...

With best regards, Alexander Diouzshev-Maltsev.
Posted via RSDN NNTP Server 1.9 gamma
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.