Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вынос модуля данных в DLL


Страницы:   1 2

AlekVolsk ©   (2011-05-13 16:54:00) 

Есть желание воспроизвести примерно следующее.
В одной dll - модуль данных с доступам к различным БД (одного формата), используемых одновременно. Во всех остальных dll - различные самостоятельные независимые друг от друга модули программы, каждый из которых содержит от 20 до 100 форм (не считая диалогов и прочего функционала, используемого сразу в нескольких модулях, вынесенного в отдельную dll), где имеются только TDataSource, ссылающиеся на TDataSet в dll с модулем данных.
По сути сейчас в каждой dll - свой модуль данных, задача - вывести его в отдельную dll.
Пока даже браться боюсь, хотя мысль мусолю ухе более года, да только не знаю с какой стороны начать. Жажду мыслей.


AlekVolsk   (2011-05-16 09:32:00) [1]

Я так думаю, тему можно закрыть. Всем спасибо.


Ega23   (2011-05-15 10:35:00) [2]


>  Можно ссылочки на толковую литературу?


У Подгорецкого на сайте что-то было
http://www.podgoretsky.com/


AlekVolsk   (2011-05-15 10:14:00) [3]

Еще была такая мысть - через интерфейсы, но я с ними сталкивался от силы пару раз, да и com пока тоже не березовая роща. Можно ссылочки на толковую литературу?


Ega23   (2011-05-15 09:43:00) [4]

Логические объекты в виде COM-серверов, объеденённых по какому-либо принципу в dll. У нас такая архитектура была, довольно шустро работала. Как раз для решения задач с "хотелками" различных заказчиков + быстрого наращения функционала.


sniknik   (2011-05-15 01:56:00) [5]

> Как мне связать TDataSource с TFIBDataSet, без использования трехзвенки, без слияния двух dll в одну?
динамически, в процессе инициализации dll, в процедуре которую будешь вызывать при старте. ShareMem естественно, для общего пространства памяти, ну и т.к. dll не будет выполнять свои функции (ты же их жёстко свяжешь, 1 dll с 1 программой. и ни каких "одну dll используют все")  то можешь не стесняться и указывать в uses dll модули программы, а в программе модули dll (чтоб был доступ к описаниям форм, хоть какое то удобство). ну а там передаешь "внутрь" форму и  

function DllInit(App: TApplication; ProgrForm: TProgrForm): Boolean;
begin
 Application.Handle:= App.Handle;
 ProgrForm.DataSource1.DataSet:= FIBDataSet;
 result:= true;
end;


> Не важно, зачем и для чего.
похлебай борщ  китайскими палочками для еды... а хотя, нет у тебя же 2 dll в связке, значит одной парой палочек берешь другую, и уже ей хлебаешь... и не спрашивай зачем это нужно.


Andy BitOff   (2011-05-15 00:41:00) [6]

> AlekVolsk   (15.05.11 00:31) [20]
> о обсирать-то зачем, обидно.

Лично к вам никаких претензий. Хотя вот про книжки только... У вас же инет есть. Можно скачать и учиться. Можно заказать по почте и учиться. В общем главное желание. А отмазки, типа, у меня в соседнем магазине нету, для слабоков. Вон Ломоносов пешком пошел =))


AlekVolsk   (2011-05-15 00:37:00) [7]

Перефразируем вопрос по другому.
В одной dll есть модуль данных и на нем TFIBDataSet. В другой dll имеется TDataSource и грид, с ним связанный. Как мне связать TDataSource с TFIBDataSet, без использования трехзвенки, без слияния двух dll в одну? Не важно, зачем и для чего.


Palladin   (2011-05-15 00:36:00) [8]

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


AlekVolsk   (2011-05-15 00:31:00) [9]

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


> На кол таких, которые учиться не хотят.

хорошо вам там, в столицах, а у нас на деревне и 2 пту - и те одних дебилов выпускают, которые базы с прогами в одной папке держат.  заочно в институт - на луну быстрей и дешевле, даже книжки в магазинах - одна донцова и иже с ней... вот и учусь, ЗДЕСЬ задавая вопросы. Я ничего не имею против критики, даже жесткой, о обсирать-то зачем, обидно.


Andy BitOff   (2011-05-14 23:54:00) [10]

> Palladin ©   (14.05.11 23:47) [18]
> oO, мнэ страшна

=) Не-е-е, это один проект, который ПРИХОДИТСЯ поддерживать и он на мне. В остальном разработка нового ;) Так же разработка новой версии этого продукта, но пока от старой не отказаться.


Palladin   (2011-05-14 23:47:00) [11]


> Andy BitOff ©   (14.05.11 22:48) [16]

oO, мнэ страшна


sniknik   (2011-05-14 23:43:00) [12]

> Так про ФБ2.5 говорилось...
ну так, он может работать без сервера, вернее без его установки, обращаясь из своей dll (содержащей весь сервер) прямо к файлу базы данных.
(и да подобное вроде называется персональным режимом, т.е. поддерживает только 1 коннект, поэтому не удивлюсь если ему пришлось делать кучу копий dll-ек, под каждый коннект свою. хотя..., это скорее всего бред моего воображения, уж очень оно разыгралось на основании странных желаний, и описаний, данных в этой ветке)


Andy BitOff   (2011-05-14 22:48:00) [13]

Разгребаю сейчас говно, за одним таким самоучкой. Переписал бы за неделю-две, так ведь нельзя. Приходится в этом говне копашиться и кое как его допиливать. На кол таких, которые учиться не хотят.


Inovet   (2011-05-14 22:24:00) [14]

> [14] sniknik ©   (14.05.11 21:44)
> у него программа лежит на сервере, рядом с базой/работает
> с базой "из директории" похоже, как файл сервер

Так про ФБ2.5 говорилось... Странно это всё.


sniknik   (2011-05-14 21:44:00) [15]

> Что-то я не понял, чего 100 метров каждый раз, и какой каждый раз, грузить.
у него программа лежит на сервере, рядом с базой/работает с базой "из директории" похоже, как файл сервер. ну, и если так, то понятно откуда/зачем взялся rdp, чтобы не грузить сеть загрузкой программы с сервера при старте/базы по пути при открытии.

а то, что "издевательство" это как раз то, что он делает... он не думает/не знает. т.к. самоучка(это он говорил), и не хочет изучать/читать про нормальную работу с субд (это догадки).


Inovet   (2011-05-14 20:45:00) [16]

> [11] AlekVolsk   (14.05.11 20:05)
> грузить каждый раз по сети сотню метров - издевательство,
> поетому и разбивал на dll

Что-то я не понял, чего 100 метров каждый раз, и какой каждый раз, грузить.


Palladin   (2011-05-14 20:20:00) [17]

а сколько человек это чудо делают 8 лет?


AlekVolsk   (2011-05-14 20:05:00) [18]


> а "моно" exe будет "весить" не более 10.

29,4


> зачем отверг нормальный клиент-сервер?

а его никто и не отвергал, просто и клиент, и сервер выполняются на одной машине, на серваке, ибо клиентские машины - максимум P4 или Sempron до 1,5GHz и до 512 метров памяти, встречаются и P2 под Win95... грузить каждый раз по сети сотню метров - издевательство, поетому и разбивал на dll


> нормальные субд

а чем Firebird 2.5 не устраивает?


> для начала уволься

да я бы рад бы, да семью кормить... ;))))))))
все бы ничего, но в маленьком провинциальном городке на окраине Руси не так много программеров, поэтому и приходится работать на 7 контор, которые еще и отпускать не желают (да и идти от них некуда).


sniknik   (2011-05-14 18:47:00) [19]

> Весит 93 метра, включая bpl.
а "моно" exe будет "весить" не более 10.
 
> Страшное в том, что железо на серваках - обычные машины под P4 или CoreDuo с 2Gb памяти, под W2K3, через rdp 150 зверей - слабовато будет...
ну вот, а зачем за подобную организацию работы "цепляешься"? зачем отверг нормальный клиент-сервер? ведь какое послабление нагрузки будет! на порядки.

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

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


AlekVolsk   (2011-05-14 17:59:00) [20]


> нужной частью пользуются, не нужную игнорируют

если бы все было так просто, но любопытство не порок (и далеко не для всех любопытство - хобби), а непреодольмое желание подставы из вредности


> интересная у вас безопасность... скрипты не положено, а
> база в с прогой в одной папке, т.е. в открытом для пользователей
> виде (даже зашифровать не спасет, ну, не так как нормальный
> вариант с базой на сервере в недоступном месте).
>

и при этом у всех full-inet, даже прикси нет. Абсурд, но не от меня зависящий... Правда, все string-поля внутри базы utf-16 + заксорены, а суммы помножены на определенную константу.


> я думал, проект только начинается. Начинать такое писать нуля на делфи сейчас было бы неосмотрительно.

возможно, но другого ничего я и не знаю, без офф. образования, проект поднимаю в одиночку


> Ну будет он весить 30 метров, и ничего страшного

Весит 93 метра, включая bpl. Страшное в том, что железо на серваках - обычные машины под P4 или CoreDuo с 2Gb памяти, под W2K3, через rdp 150 зверей - слабовато будет...

Я понимаю, что предложенный в заголовке вариант - тот еще гемор, и врят ли я буду его когда-либо реализовывать, просто желал "услышать" мнение и, возможно, мысли по поводу конкретной реализации (а вдруг кто-нить да заморочился?)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо