|
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
|
Клиент-серверная база данных: где разместить серверную часть?10.03.2014, 03:53. Показов 3990. Ответов 36
Метки нет (Все метки)
У меня есть две програмы, серверная и клиентская части БД в клиентской в настройки вбиваю 127.0.0.1, заполняю поля, жму отправить и на серверной части программы добавляются строки!
У меня вопрос простой - можно ли поместить куда нибудь на сервер серверную часть программы, так чтобы она работала. Если можно то на какой сервер, или на какой компьютер? Вобщем обьясните подробнее.
0
|
|
| 10.03.2014, 03:53 | |
|
Ответы с готовыми решениями:
36
Как внедрить в проект, где хранить и в качестве чего серверную часть?
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
| 10.03.2014, 12:43 | |
|
Серверную часть ты можешь поместить куда угодно, на любой компьютер. Главное чтобы клиентская часть "видела" серверную (через локальную сеть или интернет). В клиентской части вместо 127.0.0.1 вводишь IP адрес машины куда поставил серверную часть, которая должна "слушать" любые входящие подключения, а не только с адреса 127.0.0.1
А вот сможет ли клиент приконнектиться к серверу на конкретной машине - тут уже вопросы про доступность портов, файрволы и прочее, что мало относится непосредственно к программированию клиент-серверных программ
1
|
|
|
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
||
| 10.03.2014, 15:03 [ТС] | ||
|
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 10.03.2014, 19:12 | ||
|
Есть, конечно, методы для соединения при разных видах "прямой недоступности", но я о них знаю мало и сейчас даже правильный поисковой вопрос не могу придумать. На VPS обычно проблем нет, разве что открыть порт в настройках файрвола возможно нужно будет
0
|
||
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
|
| 27.08.2014, 16:35 | |
|
Добрый день! Подскажите чайнику где бы взять работающий пример БД клиент сервер (мааааленький на 1 табличку хотя бы чтобы просто въехать), и еще бы чтоб база mdb была. В инете инфы совсем мало(((, одни чаты, а мне бы "табличное" приложение забацать. Работаю сейчас в акцесе, вот думаю клиентскую часть на Делфу поменять.
Вот нашел тут один http://www.delphikingdom.com/a... alogid=773 , но клиент у меня не может данные менять. Точнее на экране все меняется, а в mdb на сервере не меняется. Что там можно сделать? может свойство какое поменять? Еще возможно ли в том примере как-то SocketConnection на Indy клиент и сервер заменить (говорят покруче оно))), и как их подсоединить правильно.
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
|
||
| 28.08.2014, 02:18 | ||
|
0
|
||
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
||
| 28.08.2014, 17:05 | ||
|
2. База mdb уже есть и влом ее переливать. mdb к тому же прозрачнее что ли, т.е. если прога чего-то там нахомутает всегда можно зайти аксом в таблицы и ручками перебить все или увидеть в чем фигня. 3. И какая разница в чем данные хранить на сервере, за транспорт и связь же будут спец компоненты работать типа Сокетов тех же, значит это уже клиент-сервер получается (ну или типа оно)) 4. Если переливать базу. Я так понимаю "реально СУБД" значит в MS(или му) SQL, Firebird, oracle и прочие. Так я же чайник в этом если не хуже))). И тот отсюда же вопрос - инфы (понятной особенно) ноль, где скачать готовый пример в 1 таблиц?.... И главное заморочек (типо того Х) будет в 10 раз больше в результате т.к. к дельфийским еще и субдшные добавятся. И начальство не поймет чего это я одно поле 2 года не могу в базу добавить, оно же привыкло что в аксе целую прогу можно за день с перерывом на пиво набрать))) 5. Надо же с чего-то начать, может и до "реально" дорасту со временем))) Добавлено через 7 часов 17 минут Кажется нашел в чем причина, т.е. почему Post не срабатывал. Оказывается условие if State in [dsEdit, dsInsert] then никогда вообще не выполняется, пришлось его закоментить и все заработало. Может подскажите что оно означает это условие и почему не выполняется? И еще одна заковыка: в книге по Делфи нашел такую строку: " ...при закрытии набора данных можно выполнить проверку: if ClientDataSet.UpdateStatus = usMcdified then ShowMessage('Record was changed'); ", но проблема в том что у меня ClientDataSet.UpdateStatus никогда не равно тем константам, что положено по мурзилке (usUnmodified — запись осталась неизменной; usModif ied — запись была изменена; uslnserted — запись была добавлена; usDeleted — запись была удалена). У меня оно всегда ClientDataSet.UpdateStatus = Inaccessible value. !!!!! Что не так? Строку if cdsFirst.UpdateStatus = usModified then showMessage('не сохранено!'); ставлю в FormClose формы где все компоненты клиента. Может видимость строки теряется, когда с нее курсор на форму уходит?
0
|
||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
|
||
| 29.08.2014, 02:38 | ||
|
А грубо говоря та статья на ДК представляет на самом деле файл-серверную СУБД.
0
|
||
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
||||||||
| 29.08.2014, 04:12 | ||||||||
|
Файл-клиент-серверная СУБД
Добавлено через 20 минут
Добавлено через 9 минут Вот та программа которая так организована, это правда не клиентская часть, но она идентична ей. Ей работают, она дорабатываеться, жалоб пока не поступала, ведет себя прилично. Сервер работает с 3-4 машинами, в БД 10 тысячь записей, потом она архивируетья.
0
|
||||||||
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
|||
| 29.08.2014, 10:57 | |||
|
Добавлено через 15 минут К стати! А где это выбрать - чтобы постилось сразу или все скопом? А что это за программа? Там же исходников нет наверное, тогда зачем она мне? Я ехе-шки не люблю запускать всякие без разбору))) Добавлено через 10 минут Еще интересно как сокетный клиент-сервер на обрывы сети и прочие мелкие пакости реагирует. Надо бы поэксперементировать, а то может зря весь этот секас с дельфином))))
0
|
|||
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
||||
| 29.08.2014, 15:00 | ||||
|
0
|
||||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
|
||
| 30.08.2014, 02:11 | ||
|
0
|
||
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
||||
| 01.09.2014, 10:53 | ||||
В смысле??? А запись сохранять вообще надо по вашему? А юзера вам не жалко вообще, он же работал старался)))? Короче вопрос не в том НАДО или НЕ НАДО, а в том КАК ЭТО ДЕЛАТЬ. Потому что действительно пост не работает при закрытии формы или даже перехода фокуса с грида (без перехода строки или нажатия кнопки "Пост").Добавлено через 45 минут Получается так: Создаем переменную где храним состояние Сохр/НеСохр датасет (т.к. if cdsFirst.UpdateStatus = usModified - похоже фикция какая-то и не работает). На событие грида OnExit - проверка переменной и cdsFirst.Post если надо, на событие формы OnClose - то же проверка переменной и cdsFirst.Post если надо (т.к. события эти независимые). И так для каждого грида-датасета на форме!!!, и чтобы их не перепутать еще, а то ошибка вылазит(( . Фу! ![]() Вопрос: а попроще никак не получится? Добавлено через 14 минут
0
|
||||
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
| 01.09.2014, 14:37 | |
|
Если сделать редактирование не через таблицу, а через форму, то будет срабатывать только при нажатии на кнопку сохранить, и юзеру уже никуда не деться будет.
0
|
|
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
||
| 10.09.2014, 17:56 | ||
|
Теперь очередной косяк - как бы в этот грид всунуть какой-нибудь комбобокс чтобы в каждой строке грида в комбе можно было значения из справочника (т.е. из другого датасета) выбирать, а в датасет уже код вносился автоматом. Уже и DBCtrlGrid с DBLookupComboBox пробовал вместо грида - ничего не получается как это настроить(((. Подскажите порядок как сделать?
0
|
||
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
| 10.09.2014, 18:40 | |
|
У самого грида есть такие настройки, если открыть FieldEditor можно для нужного поля выбрать таблицу и поле из которого нужны данные и будет тебе то что ты хочеш
1
|
|
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
||
| 11.09.2014, 12:15 | ||
|
.
В стандартном DBgrid вообще один PickLis только. Похоже надо более новую навороченную версию ехлиба искать. А вот что там за настройки, может их все-таки нет)
0
|
||
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
|
| 11.09.2014, 13:11 | |
|
А как бы еще с DBCtrlGrid и DBLookupComboBox (стандартные) это замутить?
У меня DBCtrlGrid связан с dsSecond. Если перетягиваю на него DBLookupComboBox, он тоже связывается с dsSecond (dataSource). Для DBLookupComboBox: ListSource Определяет компонент источника данных , связанный с таблицей синхронного просмотра - dsSpPh - ошибка "операция нот еловед в DBCtrlGrid" ListField Определяет поле или список полей синхронного просмотра в таблице синхронного просмотра - думаю Kod DataField Определяет поле, которое будет отображаться - надо думаю TIP_ph (ТИП), а пишет ошибку поле нотфаунд DataSource Определяет источник данных для отображения в списке - dsSpPh - ошибка "дс не может быть изменен" Что я не так заполняю?
0
|
|
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
||
| 11.09.2014, 14:52 | ||
|
Добавлено через 3 минуты DBLookupComboBox не будет работать в DBCtrlGrid и не пытайся даже
0
|
||
|
W
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
|
||
| 11.09.2014, 16:23 | ||
|
0
|
||
| 11.09.2014, 16:23 | |
|
Помогаю со студенческими работами здесь
20
Создаю форму. Где разместить функциональную часть При создании формы, где часть кода разместить
Чат - как написать серверную часть Как реализовать серверную часть голосовалки? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|