Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.16;
Скачать: CL | DM;

Вниз

Как в Dll работать с набором данных ?   Найти похожие ветки 

 
desc   (2008-09-16 14:59) [0]

Windows XP Professional, Delphi 7, MS SQL Server 2005

Как в Dll работать с набором данных ? Нужно реализовать форму карточку в программе, ну хотелось бы реализовать плагином dll… Что нужно передавать в адресное пространство dll, набор данных или указатель на него или указатель на соединение ?...

Спасибо.


 
Правильный$Вася   (2008-09-16 15:09) [1]

ничего не понятно
используй bpl


 
Vlad Oshin ©   (2008-09-16 15:15) [2]


> указатель на соединение

так делаю

+

> используй bpl


 
DrPass ©   (2008-09-16 15:16) [3]


> используй bpl

+1


> Нужно реализовать форму карточку в программе, ну хотелось
> бы реализовать плагином dll

Крайне неудачная идея


 
Правильный$Вася   (2008-09-16 15:26) [4]

если карточка - элемент основной функциональности, то плагин тут как зайцу пятая нога


 
MsGuns ©   (2008-09-16 16:05) [5]

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


 
clickmaker ©   (2008-09-16 16:40) [6]

> Что нужно передавать в адресное пространство dll

и плагин и экзе на дельфи?


 
Труп Васи Доброго ©   (2008-09-16 16:55) [7]


> если карточка - элемент основной функциональности, то плагин
> тут как зайцу пятая нога

Ну не согласен. Я вот тоже так делал, данные об элементах сети вносились в карточку, вызываемую из DLL. Это надо было потому, что эти данные нужно было вносить из разных приложений. Так нафига было этот процесс дублировать в каждой программе?


 
Правильный$Вася   (2008-09-16 17:01) [8]


> Это надо было потому, что эти данные нужно было вносить
> из разных приложений.

тогда это не плагин вовсе
по крайней мере в моем понимании


 
desc   (2008-09-17 09:08) [9]


> clickmaker ©   (16.09.08 16:40) [6]
> > Что нужно передавать в адресное пространство dll
>
> и плагин и экзе на дельфи?

да на delphi


 
Труп Васи Доброго ©   (2008-09-17 09:13) [10]

Да, это можно делать в DLL на Дельфи ибо я так делал и работало замечательно. По крайней мере с Жар-птицей работало.


 
desc   (2008-09-17 09:19) [11]

Еще хотел сделать универсальную форму справочник, и использовать ее в различных программах, потому и остановился именно на dll а не на bpl...


 
tesseract ©   (2008-09-17 10:20) [12]


> desc   (17.09.08 09:19) [11]


ActiveX + ISpecifyPropertyPage


 
KSergey ©   (2008-09-17 10:39) [13]

> desc   (17.09.08 09:19) [11]
> ее в различных программах, потому и остановился именно на
> dll а не на bpl...

А обоснование есть этого выбора? А на сколько различны эти "различные программы"? Все на дельфи или есть на других языках?

Если нужна супер-пупер универсальная и именно и только DLL - то вариант только один: она должна уметь самостоятельно коннектиться к требуемой БД и совершать с ней все требуемые операции. И лишь одна экспортируемая функция Start(), в которую передать логин/пароль. Только есть подозрение, что это не правильная затея.
К стати, никто не запрещает к 2 проектам подключить одни и те же (буквально) файлы с формой. Т.е. у двух (и более) проектов будет использоваться один и тот же файл исходных текстов, что, поанятно, выдвигает некоторые требования к общности того, на что данная форма(ы) буде(у)т ссылаться в разных проектах. Но мне такой вариант ге-то даже видится более предпочтительным и простым.


 
tesseract ©   (2008-09-17 10:49) [14]


> Если нужна супер-пупер универсальная и именно и только DLL
> - то вариант только один:


Вариантов тьма. COM или например собственная отрисовка данных через запрос структуры по ODBC.


 
KSergey ©   (2008-09-17 10:55) [15]

> tesseract ©   (17.09.08 10:49) [14]
> Вариантов тьма. COM или например собственная отрисовка данных
> через запрос структуры по ODBC.

Извратиться по части технологий взаимодействия можно очень по разному, понятно. Равно как и интерфейс супер развесистый этого "плагина" замудрячить тоже.
Только зачем?


 
desc   (2008-09-17 11:01) [16]

Вопрос не в ветку, но всеже: Когда я загружаю dll (LoadLibrary), то получаю Handle на эту dll, т.е. я могу посмотреть его: ShowMessage(IntToStr(FDLL)), где FDLL это Handle моей загруженной dll, а как из сомой длл получить этот Handle, т.е. где я его могу видеть, это будет Handle, Self.Handle, Application.Handle, или же что-то другое ?...


 
Труп Васи Доброго ©   (2008-09-17 11:05) [17]


> Если нужна супер-пупер универсальная и именно и только DLL
> - то вариант только один: она должна уметь самостоятельно
> коннектиться к требуемой БД и совершать с ней все требуемые
> операции.

Во во во!!! Именно так у меня и было сделано. Ей при вызове передавалась строка коннекта и... вроде бы всё.


 
clickmaker ©   (2008-09-17 11:05) [18]

> [16] desc   (17.09.08 11:01)

GetModuleHandle(PathToDll)


 
KSergey ©   (2008-09-17 11:19) [19]

> clickmaker ©   (17.09.08 11:05) [18]

GetModuleHandle(nil) исли из dll-ки же и получаем (если не вру, читать хел лень).


 
desc   (2008-09-17 14:54) [20]

С бпл вообще не работал, где можно почитать ? спс.


 
clickmaker ©   (2008-09-17 15:28) [21]

> где можно почитать ?

Delphi Help -> Index -> packages


 
ANB   (2008-09-18 09:41) [22]


> С бпл вообще не работал, где можно почитать ? спс.

Если хочешь работать с объектами основного приложения из бпл/длл, то очень рекомендуется включить галку "компилять с рантайм пакетами". Со всеми вытекающими.


 
desc   (2008-09-18 14:09) [23]

Как передать указатель на соединение в dll, и присвоить в dll самой соединение… (ADOQuery1.Connection :=) ?


 
KSergey ©   (2008-09-18 14:20) [24]

ему говорят как надо делать, а он снова своё... сам по граблям хочет идти...

ну так и передавай ADOConnection1, его и присваивай, в чем беда-то? Только этот путь порочен


 
desc   (2008-09-18 14:28) [25]


> KSergey ©   (18.09.08 14:20) [24]

Да наверное остановлюсь на bpl, смысл в том что в программе будет куча форм, которая и половине не нужна, поэтому хотелось вызывать именно плагины и именно динамически...

Не понятно в чем собственно грабли... Сорри, за тупость просто я с этими плагинами не когда не работал, а повидемому начинать придется...

Спасибо.


 
desc   (2008-09-18 14:36) [26]

Тогда еще вопрос:
Были ли случаи когда вам приходилось использовать именно dll, и в каких случаях в использовали свои/чужие dll ?


 
KSergey ©   (2008-09-18 15:07) [27]

Ну про чужие dll какой тут смысл говорить? Они все равно как данность (хотя и сталкивался с dll, где авторы ничего кроме дельфи не польдовали, а потому выдавать наружу string дельфийский считали нормальным; у них даже одна из функций string возвращала из dll).

Свою dll я когда-то так же вот сделал с типа надором форм/функционала, который (функционал) должен был быть доступен в нескольких приложениях. Потому и пишу про все это, что нахлебался и понял, что путь этот никаких особенных бонусов не приносит, один геморой (особенно попытки встроить формы этой DLL в хост-приложение).

Только я не пойму от чего вы пугаетесь свалить много форм в оно приложение? Ну и пусть оно себе там лежит, не надо - не будуи исользовать, вот и все. Или хочется продавать ферсии с различным функционалом и хочется доп. фонкционал непременно очень вырезать? Так и это делается ключем шифрованным - да и все. Врятли кто-то поелезет особенно глубоко копать вашу софтину, не надо себе льстить :)


 
KSergey ©   (2008-09-18 15:08) [28]

Да, и эта dll ка краз бодлны была ходить к MS SQL сервер и как раз через ADO.
Нет, оно работает и до сих пор, но я понял, что это неудачное решение :)


 
desc   (2008-09-18 16:01) [29]


> KSergey ©   (18.09.08 15:08) [28]

Так какого х..на извеняюсь dll использует Microsoft ?...
И решает ли эти все проблемы .net ?


 
clickmaker ©   (2008-09-18 16:06) [30]

> [26] desc   (18.09.08 14:36)
> Тогда еще вопрос:
> Были ли случаи когда вам приходилось использовать именно
> dll, и в каких случаях в использовали свои/чужие dll ?

если и длл и экзе написаны на одной версии Дельфи и собраны с одним набором рантайм пакетов, то, в принципе, можно передавать в длл указатель. Благо адресное пространство одно.
Правда, если в длл планируется юзать формы, то надо заменить там Screen и Application на переданные из экзе.
Если длл написана на чем-то другом, то обмениваться можно только независимыми от среды разработки типами данных (PChar, Int etc)


 
KSergey ©   (2008-09-18 16:43) [31]

> desc   (18.09.08 16:01) [29]
> Так какого х..на извеняюсь dll использует Microsoft ?...

Она им пользуется ровно тем органом, что четко понимает, как с ними надо правильно работать и как правильно разносить логику приложений с учетом используемых сред разработки.
Если dll-ка не показывает из себя формы - то с ней и в дельфи нет проблем. Если показывает - то некоторые моменты применительно именно к "заморочкам" дельфи clickmaker уже указал.

И .net тут совсем не при чем. Впрочем, .net реализацию дельфи я не видел вообще, так что предметно тут сказать ничего не могу.

Короче, мы давно ведем тут беспредметную беседу.
Вы уже попробуйте сделать наконец-то - и многие вопросы, думаю, прояснятся.


 
KSergey ©   (2008-09-18 16:46) [32]

"то с ней и в дельфи нет проблем."
Ну точнее сказать их можно нивелировать более-менее, но очень все просто становится только если мы не передаем меду dll и приложением каких-либо дельфийских контролов вообще.
Чтобы все без проблем было вообще прозрачно - надо пользовать bpl, которые есть те же dll но с некоторым доп. функционалом, поддерживаемым дельфями автоматически.


 
KSergey ©   (2008-09-18 16:46) [33]

К стати, я правильно понимаю, что в случае сборки с run-time пакетами смешивать версии дельфи все равно нельзя никак?


 
ANB   (2008-09-18 17:45) [34]


> К стати, я правильно понимаю, что в случае сборки с run-
> time пакетами смешивать версии дельфи все равно нельзя никак?
>

Именно.



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

Текущий архив: 2008.11.16;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.017 c
15-1221345698
Per Pra
2008-09-14 02:41
2008.11.16
"Perfect Prattle" или "Идеальная потрепаловка - 2"


2-1223388590
ВитаминС
2008-10-07 18:09
2008.11.16
Вопрос про THotKey


15-1221766269
Riply
2008-09-18 23:31
2008.11.16
Генерация собственного ControlCode - кода.


2-1223452737
123-ий
2008-10-08 11:58
2008.11.16
Выяснить наличие св-в Caption и Text


15-1221743697
Footballer
2008-09-18 17:14
2008.11.16
Вывод Яндекс.Денег