Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.014 c
4-1127657412
Ландграф Павел
2005-09-25 18:10
2005.11.27
Реакция окна программы на taskbar


14-1131458363
WondeRu
2005-11-08 16:59
2005.11.27
http://podgoretsky.com/ - куда делась вся литература?


14-1130765834
Cerberus
2005-10-31 16:37
2005.11.27
помогите выбрать телефон.


14-1131312974
Gero
2005-11-07 00:36
2005.11.27
Блокнот -> Перейти


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский