Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
ВнизИспользование DLL для коннекта с БД Найти похожие ветки
← →
Евгений (2003-11-26 10:51) [0]Подскажите плиз, можно ли DataModule (предварительно настроив соединение) засунуть в DLL, а потом из основной формы подцеплять DBGrid через эту библиотеку? Если да, то как?
← →
Евгений (2003-11-26 15:17) [1]Неужели никто не знает? Помолите пожалуйста.
← →
Sandman25 (2003-11-26 15:31) [2]Я не делал такого с BDE, но для DBExpress передавал в DLL TSQLConnection (аналог TDatabase), а в самой DLL это переданное значение использовал в компонентах доступа к БД.
← →
Vlad (2003-11-26 15:35) [3]Можно в DLL создавать DataModule и открывать собственное соединение с базой.
А что такое подцеплять грид через эту библиотеку - неясно.
Если ты имеешь ввиду набор данных из библиотеки подцепить к гриду, то сделай ф-цию в DLL, которая будет возвращать ссылку на DataSet (я так не делал, но думаю будет работать), а в основной форме цепляй динамически к DataSource грида.
← →
Michail Dalakov (2003-11-26 16:05) [4]2Евгений
Для этих целей лучше использовать BPL.
← →
Евгений (2003-11-26 16:39) [5]А в чем собственно приемущество использование BPL?
← →
Michail Dalakov (2003-11-26 17:08) [6]В BPL ты можешь без ограничений пользоваться всеми классами и типами данных Delphi и использовать их в параметрах функций, которые ты будешь экспортировать, ну конечно подразумевается,
что экспортируемые функции будут использоваться в других приложениях Delphi.
← →
me (2003-11-26 17:32) [7]Нужно в DLL создавать DataModule и подставить его handle заначение handle от DataModule из главной апликации (передать в DLL). В результате из DLL используется уже открытое соединение с базой.
← →
me (2003-11-26 17:33) [8]Нужно в DLL создавать DataModule, поместить в него компонент TDataBase и подставить в ее handle заначение handle от TDataBase из DataModule главной апликации (передать в DLL). В результате из DLL используется уже открытое соединение с базой.
← →
Michail Dalakov (2003-11-26 17:48) [9]2[8]
А зачем вместо BPL использовать DLL ecли работа с библиотекой будет производиться из приложения написанного на Delphi?
← →
Евгений (2003-11-26 18:32) [10]Настроил соединение в DLL MyDLL.dll (TIBDataBase, TIBTransaction, TIBTable) пишу функцию:
function ex(): TIBTable;
begin
result:=DataModule1.IBTable1;
end;
exports
ex name "ex";
На форму добавил: TDBGrid, TDataSource, TButton.
function ex(): TIBTable; external "MyDLL.DLL";
Обработка клика на кнопке
Begin
DataSource1.DataSet:=ex();
End;
При клике, вылазиет ошибка. Здесь что-то не правильно?
← →
Евгений (2003-11-26 18:46) [11]Для Michail Dalakov. Ну с BPL, я еще не толком не работал, а что-то новое всегда страшно. Кроме того не факт, что работа будет из Делфи, каждый программист работая над программой надеется на дальнейшее ее развитие. Например на использование DLL в MSOffice, расширения при помощи ActiveX и т.д. А вообще тема BPL меня заинтересовала.
← →
Vlad (2003-11-26 18:48) [12]
> При клике, вылазиет ошибка. Здесь что-то не правильно?
Текст ошибки ?
← →
Michail Dalakov (2003-11-26 18:54) [13]To [10]
Если ты решил все таки DLL, то используй указатели в передаваемых
и возвращаемых значениях.
В приведенном коде: ф-я ex() возвращает класс и это присваивается
DataSource1.DataSet
← →
Евгений (2003-11-26 18:55) [14]Дословно текс ошибки:
Access violation at adress 00396CD7 in module "MyDLL.DLL". Read of adress 00000060.
← →
Michail Dalakov (2003-11-26 19:01) [15]Нет смысла писать DLL вместо BPL если ты будешь использовать ее из приложений написанных на Delphi. Ты получаешь только ограничения на типы данных ничего не имея взамен
← →
Vlad (2003-11-26 19:01) [16]Ясно. В DLL не создаешь DataModule.
function ex(): TIBTable;
begin
DataModule1:=TDataModule1.Create(nil);
result:=DataModule1.IBTable1;
end;
← →
Michail Dalakov (2003-11-26 19:21) [17]Люди, если вы будете создавть объекты типа TIBTable и будете передавать указатели на объекты, то если главное приложение пишется не на Delphi, то к чему вы будете их кастовать, оно 100% не будет знать о классе TIBTable, если же главное приложение на Delphi, то зачем вам DLL, пишите BPL - это таже библиотека.
← →
Евгений (2003-11-26 19:39) [18]О чудо!!! Она заработала. Спасибо Vlad. Спасибо всем.
Вопрос Michail Dalakov: где можно надыбать инфу о так хваленной BPL (желательно с примерами)? Я же говорю, что плохо знаком с этой "штукой", вот бы познакомиться по ближе, чтобы самому оценить все "за" и "против"
← →
Michail Dalakov (2003-11-26 19:49) [19]По F1 можно найти все необходимое, по крайней мере я дополнительными источниками не пользовался,
ну пакеты компонентов наверняка приходилось писать или хотя-бы
устанавливать.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c