Форум: "Прочее";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
ВнизКак в 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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.005 c