Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > ADOTable в DLL


Автор: Domoffou 15.8.2008, 23:38
Пытаюсь подключить ADOTable прямо в DLL, все бы ничего, но на событии ADOTable1.Active зависает в Viste,
причем в XP - работает!!
Вот код:
Код
  CoInitialize(nil);

  ADOTable1:=TADOTable.Create(nil);

   ADOTable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'1.mdb'+';Persist Security Info=False';
   ADOTable1.TableName:='MyTableName';
   ADOTable1.Active:=true;


Пробовал на 2 разных вистах, везде виснет.
Если засунуть этот код в обычный exe - все нормально.
Помогите!

Автор: Akella 18.8.2008, 01:40
а если отключить UAC?

Автор: Domoffou 18.8.2008, 12:09
Цитата(Akella @ 18.8.2008,  01:40)
а если отключить UAC?

хм... как вариант... попробую... но сомневаюсь что в нем дело...
что самое интересное, тесты показали, что если создать форму в DLL и пихнуть код на OnCReate,
то все подвисает... хотя если сделать этот код по нажатию кнопки ЛИБО по таймеру,
но все прекрасно функционирует...

Автор: Akella 18.8.2008, 12:57
СДЕЛАЙ НА OnShow


может не всё успевает создаваться?
что у тебя в свойстве OldCreateOrder?

Автор: morpheyushka 18.8.2008, 13:02
И не забывай, что метод OnCreate запускается сразу же после строчки
Код

ADOTable1:=TADOTable.Create(nil);



а потом, после его выполнения продолжается дальше выполнение кода:
Код

ADOTable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'1.mdb'+';Persist Security Info=False';
ADOTable1.TableName:='MyTableName';
ADOTable1.Active:=true;



Может там (в OnCreate) кто то данные ждет?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)