Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.54 MB
Время: 0.01 c
2-1223495398
АгатаКристи
2008-10-08 23:49
2008.11.16
IP, Основной Шлюз, DNS


15-1221485083
stas
2008-09-15 17:24
2008.11.16
Драйвер типа RAM диска


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


2-1223535224
D@nger
2008-10-09 10:53
2008.11.16
Drag-n-Drop файлов из проводника


2-1223554456
i
2008-10-09 16:14
2008.11.16
узнать размер файла по http..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский