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

Вниз

БД + сеть, посоветуйте!   Найти похожие ветки 

 
Suslik   (2005-10-14 14:38) [0]

Всем респект! Хочу посоветоваться как лучше делать, это мои первые шаги в делфи, поэтоум буду рад если не обойдете вниманием.
Такая ситуация, мне нужно написать распределенное приложение: серверная часть, клиентаская и БД. Это программа для тестирования. Я вижу схему такой:
1. Каждый клиент имеет доступ к БД. А сервер лишь играет роль настройщика и через него заносятся новые данные (тесты...) в БД.
2. Только сервер имеет доступ к БД и поэтому все изменения делаются только им, в зависимости от приходящих клиентских запросов.

Скажиете какой вариант лучше или если они оба неудачны, то посоветуйте как можно это сделать лучше. Мне конечно больше нравится 2 вариант, но возможно это будет слишком сложно для первого раза.

Если все-таки 1 вариант, то:
1. с пом-ю какой технологие лучше осуществлять доступ (BDE, ADO, либо еще как)?
2. какуб БД лучше использовать
3. как тогда должен осуществляться доступ к БД по сети, видимо здесь уже обчными локальными базами не обойтись?

Если же 2 вариант, то:
1. каким образом лучше связывать две программы по сети?
2. какуб БД лучше использовать

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

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

Зарание блогадарю.


 
ANB ©   (2005-10-14 14:42) [1]


> Это программа для тестирования.
- хм. Я такую же пишу. Чего тестировать ? Заходи ко мне в аську - пообщаемся 285340244


 
DSKalugin ©   (2005-10-14 14:46) [2]

поищи в нете по словосочетанию
"технология Client/Server" и "технология midas"

про BDE даже и не думай
из СУБД выбирай чтонибудь бесплатное и простое типа FireBird


 
Sergey13 ©   (2005-10-14 14:46) [3]

2Suslik   (14.10.05 14:38)
А зачем 3 уровня? Почему не клиентская программа + север БД?


 
ANB ©   (2005-10-14 14:52) [4]


> Sergey13 ©   (14.10.05 14:46) [3]
> 2Suslik   (14.10.05 14:38)
> А зачем 3 уровня? Почему не клиентская программа + север
> БД?

Не знаю. У меня клиент на делфи и оракл - как база.


 
Курдль ©   (2005-10-14 14:58) [5]


> Suslik   (14.10.05 14:38)


Если прога не предполагает доступа клиентов через инет, если нет соблазна исполнить клиентскую часть под вэб - тогда двухзвенка.

Рекомендуемая СУБД зависит от объема данных и количества юзеров.
Если не критично, то: DSKalugin ©   (14.10.05 14:46) [2]

Как писать трехзвенку на Делфях - не знаю. Не пробовал. Только на вижуал кролике :-(


 
ANB ©   (2005-10-14 15:04) [6]


> Если прога не предполагает доступа клиентов через инет,
> если нет соблазна исполнить клиентскую часть под вэб
- как он тестировать из веб интерфейса будет ?


 
isasa ©   (2005-10-14 15:40) [7]

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

...
EXTENSION_CONTROL_BLOCK* m_pECB = &m_ECB;
...
HMODULE hL=LoadLibrary(lpFileName);  // ISAPI библиотека (DLL)
...
m_ECB.cbSize=sizeof m_ECB;
m_ECB.ConnID=(HCONN)0x911fc8;
m_ECB.lpszMethod=LPSTR("GET");
m_ECB.lpszQueryString=(++pszPtr);
m_ECB.lpszPathInfo="";
m_ECB.lpszPathTranslated="E:\\WWW";
m_ECB.cbTotalBytes=0;
m_ECB.cbAvailable=0;
m_ECB.lpbData=0;
m_ECB.lpszContentType="";
m_ECB.ServerSupportFunction=&SrvSuppFunc;
m_ECB.ReadClient=&ReadClnt;
m_ECB.WriteClient=&WriteClnt;
m_ECB.GetServerVariable=NULL;
...
httpProc httpDLL = (httpProc) GetProcAddress(hL, "HttpExtensionProc");
if (httpDLL==NULL) return S_OK;
...
DWORD result=httpDLL(m_pECB);
buff.Format("result %d
", result);
buff.AppendFormat("Status %d", m_ECB.dwHttpStatusCode);
pElem->put_innerHTML(buff.AllocSysString());
...
FreeLibrary(hL);


 
msguns ©   (2005-10-14 15:56) [8]

Мне это так нравится: стоит только кому-то спросить: чуваки, мне надо картошку перевезти из дачи до дому, что посоветуете ?, так начинается: один советует КАМАЗ, второй - провести до дачи  железную дорогу и "не мучиться", третий вообще говорит, кидай нафиг эту картошку и переходи на чипсы ;)


 
msguns ©   (2005-10-14 15:59) [9]

Если это простая тестовая программка (типа проверки знаний студентов) - вопрос - НАФИГА ТАМ ВООБЩЕ СИКВЕЛЬ ? Что, по сетке можно читать-писать данные только "сервером" ? Или для того, чтобы 100 чуваков одновременно СМОТРЕЛИ один и тот же файл и ПИСАЛИ КАЖДЫЙ В СВОЙ нужны "трехзвенки" ?

Иногда складывается впечатление, что иногда кое-кто постит с одной целью - показать свою "крутизну"
 ;))


 
Suslik   (2005-10-14 16:45) [10]


> ANB ©   (14.10.05 14:42) [1]
> - хм. Я такую же пишу. Чего тестировать ?


Да это прога для тестирования учеников. Знакомый препод попросил написать, а я до этого только на басике писал, вот дай-ка думаю по такому случаю и попробую :)


> Sergey13 ©   (14.10.05 14:46) [3]
>
> А зачем 3 уровня? Почему не клиентская программа + север БД?

Возможно и так, просто сервером я называю ту часть через которую учитель будет вносить новые задания, проверять результаты и определять тему теста. Также, если бы запросы шли через "сервер", то у препода была бы возможность отслеживать текущее состояние отвечающих по мере ответов (сколько уже ответил сколько правильно из них и т.д.) не обращаясь переодически к базе.


> Курдль ©   (14.10.05 14:58) [5]
> Если прога не предполагает доступа клиентов через инет,
> если нет соблазна исполнить клиентскую часть под вэб - тогда
> двухзвенка.


Нет поставить на главную машину сервер, например, Апач и на ПХП написать эту программу, на основе MySQL, мне было бо конечно проще,НО:
1. мне интересно попробовать Делфи.
2. не запускать по возможности фоновых программ для работы, вроде сервера апач и мускул
3. а не через пхп я не работал с базами в web интерфейсе


> isasa ©   (14.10.05 15:40) [7]
> CGI - как обычно,
> ISAPI - пишем "вызывающую прокладку", на том-же языке программирования


К сожалению код что вы привели для меня мало о чем говорит :(

2 msguns :)) да в этом что-то есть, но зато предлагается оч много вариантов даже интересно, и наверное не только спрашивающему, главное только не запутаться :) А написать по возможности хотелось бы как можно проще. т.к. тетирование всего наверное 20 человек, да и мой уровень в этом деле ограничивает.


 
Курдль ©   (2005-10-14 16:51) [11]


> Также, если бы запросы шли через "сервер", то у препода
> была бы возможность отслеживать текущее состояние отвечающих
> по мере ответов (сколько уже ответил сколько правильно из
> них и т.д.) не обращаясь переодически к базе.


Для такой хрени идеально бы подошла VS + .NET Remoting с хранением данных в XML (если уж на любую СУБД - табу).


 
msguns ©   (2005-10-14 16:54) [12]

>Suslik   (14.10.05 16:45) [10]
>А написать по возможности хотелось бы как можно проще. т.к. тетирование всего наверное 20 человек, да и мой уровень в этом деле ограничивает.

Самое простое (для школы):

1. В акцессе пишешь БД вопросов и ответов. К ней программу редактирования этой БД для препода. Режим редактирования - строго однопользовательский.

2. Прога-клиент. В режиме только чтения дает преподавателю выбрать тест и показывает вопросы. Ученик вводит ответы, которые запоминаются в переменных проги или (на случай многосеансовых тестов) в каком-нибудь ini-файле ЛОКАЛЬНО. По завершению теста выдает оценку.

ВСЕ !!!!

Никаких серверов, никаких мидасов, никаких доп.установок.


 
msguns ©   (2005-10-14 16:56) [13]

Вся эта хрень легко реализуется средствами самого акцеса.
Но если хоцца делфи, то канешна ;))


 
Андрей Жук ©   (2005-10-14 17:00) [14]


>ВСЕ !!!!
>
> Никаких серверов, никаких мидасов, никаких
> доп.установок.

Шо все? Нифига не все. Еще, думаю, пригодится -
клиенты должны начать работу в некоторое определенное время, закончить - тоже в определенное время (до и после - запрещено). Или же зачем потом вносить данные об оценках? Она должна заноситься в центральную базу (возможно, в общую базу учебного заведения). Как ты себе представляешь такое в твоем варианте?


 
Курдль ©   (2005-10-14 17:02) [15]


> msguns ©   (14.10.05 16:56) [13]
> Вся эта хрень легко реализуется средствами самого акцеса.

Не вся хрень, а только ее самая не интересная часть :)
А самая интересная - в подглядывании за процессом тестирования! Ее-то аццесс  и не осилит!


 
evvcom ©   (2005-10-14 17:20) [16]


> в каком-нибудь ini-файле ЛОКАЛЬНО

Ты плохо думаешь об учениках. Думаешь никто из них не сообразит подправить этот файлик в блокноте?

> Suslik

Нагрузка тут конечно небольшая и в качестве СУБД подойдет все, что угодно, хоть локальные, хоть серверные, хоть XML. Вот только удобнее все же работать с SQL. Есть опыт работы с MySQL, значит сойдет и он. Ну а чтобы преподу постоянно не рефрешить наборы, действительно можно организовать трехзвенку.


 
Suslik ©   (2005-10-14 17:20) [17]


> Курдль ©   (14.10.05 16:51) [11]
> Для такой хрени идеально бы подошла VS + .NET Remoting с
> хранением данных в XML (если уж на любую СУБД - табу).

есть у меня Delphi8 с .NET. Но поставил 7 т.к. по нему материала больше да и попроще он вроде. Хотя эт интересно нужно посмотреть об этом. Но чувствую это уже будет совсем другая область программирования.

> msguns ©   (14.10.05 16:56) [13]
> Вся эта хрень легко реализуется средствами самого акцеса.
>2. Прога-клиент. В режиме только чтения дает преподавателю выбрать тест и >показывает вопросы. Ученик вводит ответы, которые запоминаются в >переменных проги или (на случай многосеансовых тестов) в каком-нибудь >ini-файле ЛОКАЛЬНО. По завершению теста выдает оценку.


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


 
Anatoly Podgoretsky ©   (2005-10-14 17:29) [18]

Делай тонкого клиента, доступ только через Вед интерфейс, а то ваши ученики оставят от базы рожки да ножки.


 
ANB ©   (2005-10-14 17:33) [19]

Вот млин. Опять тестирование увидел - и решил, что кто то тоже автоматизацией тестирования софта занимается.

Для сего случая достаточно просто на оракле Web интерфейс нарисовать и не мучится. И клиента писать не надо.


 
Suslik ©   (2005-10-14 17:40) [20]


> evvcom ©   (14.10.05 17:20) [16]
> Есть опыт работы
> с MySQL, значит сойдет и он. Ну а чтобы преподу постоянно
> не рефрешить наборы, действительно можно организовать трехзвенку.

Т.е. все таки предлагаете сервер (MySQL) отдельный запустить и через драйвер к нему коннектиться?
И если трехзвенку использовать, то через что подключаться к "серверу"? На басике я это пробовал через winsocket, и устанавливал постоянное соединение с "сервером". Здесь ход такой же, либо есть более лучшие способы для этого?


 
Anatoly Podgoretsky ©   (2005-10-14 17:51) [21]

Предлагаю не мучаться с MySQL, а приментить что ни будь более промышленное. Но при построении трехзвенки, совсем не важно, что будет использоваться в роли базы, хоть тотже преслоутый Парадокм.
В Дельфи есть неплохая поддержка для разработки Веб приложений, в лице WebSna[, DataSnap, BizSnap начни изучение с TWebModule


 
Suslik ©   (2005-10-14 17:54) [22]


> Anatoly Podgoretsky ©   (14.10.05 17:29) [18]
> Делай тонкого клиента, доступ только через Вед интерфейс,
>  а то ваши ученики оставят от базы рожки да ножки.


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


> ANB ©   (14.10.05 17:33) [19]
> Вот млин. Опять тестирование увидел - и решил, что кто то
> тоже автоматизацией тестирования софта занимается.

теперь видимо разговоры в асе по этому поводу отменяются :)

> Для сего случая достаточно просто на оракле Web интерфейс
> нарисовать и не мучится. И клиента писать не надо.

Кк сожалению с Ораклом знаком только по слухам, неразу не провобал и не видел :(  Нужно почитать, а что это действительно такая удобная вещь? А запросы к ней также на языке SQL организуются?


 
ANB ©   (2005-10-14 17:59) [23]


> Suslik ©   (14.10.05 17:54) [22]

Сам оракл можно использовать как Web сервер. И в хранимках генерит странички прямо на PL/SQL.


 
Anatoly Podgoretsky ©   (2005-10-14 18:02) [24]

Suslik ©   (14.10.05 17:54) [22]
Можно конечно, но сложнее и все равно трехзвенка, нельзя давать доступа до БД, участники должны работать только с данными, наибольшую изолированость дает ВЕБ, все делается только на сервере, на клиенте любой браузер, любая ОС. Данные вводятся в форму и отсылаются серверу приложений. Например данный форум типичный представитель данной технологии, никакого прямого доступа к базе.


 
Suslik ©   (2005-10-14 18:14) [25]

Вобщем что понял, как один из хороших вариантов:
1. На главной машине устанавливаем СУБД (Еще стоит выбрать какую).
2. Пишем программу "сервер" - только она работает с базой.
3. Чрез средсва делфи пишем веб прилоджение которое обращается к "серверу", и передает результаты тестирования.

Если что не так понял, то попровьте.

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


 
Suslik ©   (2005-10-14 18:15) [26]

И еще на этом форуме бывает переход на другую страницу в ветке, или он так все на одну страницу и выводит? Если так то довольно неудобно мне кажется.


 
Suslik ©   (2005-10-14 18:19) [27]

Вот сам и получил ответ на свой вопрос :)
Прощу прощения за флуд


 
Anatoly Podgoretsky ©   (2005-10-14 18:30) [28]

Suslik ©   (14.10.05 18:14) [25]
База, сервер приложений могут быть на одной машине, общение с базой стандартное, как в обычном приложение, результатом работы должна быть веб страница. Для этого достаточно выше указаных способов.
Вот посмотри пример использования Дельфи для веб проектов
http://www.ismart.ee/Books.dll/html?fn=index
Среда - Win2000, MSSQL, IIS, Delphi с ее веб средствами.


 
Sergey13 ©   (2005-10-17 09:27) [29]

2[10] Suslik   (14.10.05 16:45)
> просто сервером я называю ту часть через которую учитель будет вносить новые задания, проверять результаты и определять тему теста.

Это наверное самое "интересное" определение сервера. 8-)
Плюнь ты нафик на эту 3-х звенку. Ничего сверхестественного она тебе не даст кроме гемороя. 8-)
Поставь БД (мой голос за ФайрБерд) и напиши 2 клиента - преподавательский и студенческий.
Все исключительно ИМХО.


 
msguns ©   (2005-10-17 09:40) [30]

Ну вот, уже и шпалы привезли..


 
Anatoly Podgoretsky ©   (2005-10-17 10:34) [31]

Осталось только спички достать



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

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

Наверх




Память: 0.57 MB
Время: 0.156 c
14-1130860157
NORDmen
2005-11-01 18:49
2005.11.27
где есть исчерпывающие примеры/исходники?


14-1130944856
-[ HAWK ]-
2005-11-02 18:20
2005.11.27
Использование скинов


14-1131190184
Слоник
2005-11-05 14:29
2005.11.27
Как?? как увеличить раздел с Win2003 Server?


4-1127564241
Реактор
2005-09-24 16:17
2005.11.27
Keybd_Event не хочет нажимать на "точку"


8-1120639876
Илья.Сан
2005-07-06 12:51
2005.11.27
Работа с картинкой