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


Автор: CompWorm 15.3.2008, 18:28
- задача:
хочу сделать SQL запрос из DLL, подключившись к БД фаербёрда.

- делаю примерно следующим образом:
прицепил DataModule к DLL , положит в него соннекшон, транзакшон и куери.

- проблема:
у меня выскакивает AV-ошибка при попытке соединения...

что я делаю неправильно?

Код

uses
  SysUtils,
  Classes,
  DataModule1 in 'DataModule1.pas' {DataModule2: TDataModule};

{$R *.res}

...

procedure connectIBD (PathToBD: PChar);  
begin
   DataModule1.DataModule2.IB_Connection1.Connected:=False;
   DataModule1.DataModule2.IB_Connection1.DatabaseName := String(PathToBD);
   DataModule1.DataModule2.IB_Connection1.Username:='qwerty';
   DataModule1.DataModule2.IB_Connection1.Password:='qwerty';
   DataModule1.DataModule2.IB_Connection1.Connect;
   DataModule1.DataModule2.IB_Connection1.Open;

   DataModule1.DataModule2.IB_Query1.GeneratorLinks.Values['WORD_ID'] := 'G$_WORD_ID';
   DataModule1.DataModule2.IB_Query1.PreventDeleting := False;
   DataModule1.DataModule2.IB_Query1.RequestLive := True;
end;


PS
я экспериментировал до этого с аксессом, прицепив к DLL форму. такой вариант работал на ура.
почему же без формы не прокатывает? 

Автор: CompWorm 21.3.2008, 19:57
неужели все так плохо? хоть с теоретической точки зрения, возможно ли залезть в бд из длл без формы? smile 

Автор: Rodman 22.3.2008, 12:28
Цитата(CompWorm @  21.3.2008,  18:57 Найти цитируемый пост)
без формы? smile

ну чисто теоретически и из консольного приложения мона приконектиться, а твой случай сложно рассматнривать не имея твоей длл ки и базы под рукой

Автор: CompWorm 31.3.2008, 11:11
не понимаю вопроса...
база любая - ну пусть там одна таблица с одним полем и одной записью... 
разве это на что-то влияет?
а длл'ка - собственно вопрос в том, как ее написать! 
собственно загадка в том, что сама ДЛЛ не может работать с компонентами из DataModule, а вот если в длл засунуть форму, то из нее к этим компонентам в DataModule обратиться можно! smile 



зы код ДЛЛки в первом посте smile  smile 

Автор: Deniz 31.3.2008, 13:08
Можно создать в Run time:
1. Connection
2. Transaction
3. DataSet
и пользовать на здоровье.

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