Многопользовательская Программа

Fynjy1
Дата: 02.06.2011 10:19:30
Добрый день!
Подскажите пожалуйста как правильно организовать работу с многопользовательской программой.
У меня есть база данных на сервере .
Я хочу сделать программу с котором будут работать разные пользователи,
в одно и тоже время с ней может работать одновренно около 20 пользователей.
Подключаюсь к базе данных с помощью AdoConnection. Так же использую DBGrid , в который выбираю данные из таблиц и потом можно их редактиррвать,есть экраны добвления записей в таблицы и тд.
как правильно сделать что бы пользователи не могли обратится к одной и тойже записи, что бы не было конфликта. и как вообще организована мнопользовательская база данных, нужны ли сессии или еще что нибудь?
Gerasimenko
Дата: 02.06.2011 10:21:44
Fynjy1,

Транзакции Вам в руки...
Fynjy1
Дата: 02.06.2011 10:27:26
Gerasimenko
Fynjy1,

Транзакции Вам в руки...


Получается мне нужно делать как обычную программу, только при добавлении или обновлении делать транзакции? а если работа с таблицей идет с помощью DBNavigator то нужно транзакции или он сам их создает?
Fynjy1
Дата: 02.06.2011 10:29:56
А что будет если пользователь открыл транзакцию, вбил данные но не завершил ее, отвлекся куда ниьбудь. то получается другой пользователь до того пока этот не завершит транзакцию не сможет ничего сделать в базе даных?
londinium
Дата: 02.06.2011 10:32:05
автор
А что будет если пользователь открыл транзакцию, вбил данные но не завершил ее, отвлекся куда ниьбудь

А может проще - пользователь вбивает данные в формочку, нажимает кнопку "Записать". В этот момент стартует транзакция, которая пишет что надо куда надо. А сколько он данные в формочку будет вбивать - личное дело пользователя
Gerasimenko
Дата: 02.06.2011 10:40:24
Fynjy1,

Почитайте, как использовать транзакции. Об этом много пишут.
Gerasimenko
Дата: 02.06.2011 10:41:25
Fynjy1

DBNavigator
- выкинь нафиг
Fynjy1
Дата: 02.06.2011 10:42:42
londinium
автор
А что будет если пользователь открыл транзакцию, вбил данные но не завершил ее, отвлекся куда ниьбудь

А может проще - пользователь вбивает данные в формочку, нажимает кнопку "Записать". В этот момент стартует транзакция, которая пишет что надо куда надо. А сколько он данные в формочку будет вбивать - личное дело пользователя


У меня другая ситуация, мне нужно оформить накладную (это одна таблица), а нее можно добавить товар (это другая таблица) .
Это происходит так, пользователь
1) наживает на кнопку сформировать накладную, открывается окно с данными по накладной-- транзакция начинается
2) пользователно по нажатии на кнопку добавить товар в накладную- появляется окно добавления товара, тут вводится данные и нажимается ок
3) по нажатию ок возвращается в окно с накладной, в нем в гриде появлется информация о товаре который добавили в пункте 2, так можно добаить неограниченное кол-во товара.
4) далее можно провести накладную-коммит транзакции, или отклонить-откат транзакции
Fynjy1
Дата: 02.06.2011 10:43:27
Gerasimenko
Fynjy1
DBNavigator
- выкинь нафиг


А почему его надо выкинуть?
Gerasimenko
Дата: 02.06.2011 10:50:02
Fynjy1
londinium
пропущено...

А может проще - пользователь вбивает данные в формочку, нажимает кнопку "Записать". В этот момент стартует транзакция, которая пишет что надо куда надо. А сколько он данные в формочку будет вбивать - личное дело пользователя


У меня другая ситуация, мне нужно оформить накладную (это одна таблица), а нее можно добавить товар (это другая таблица) .
Это происходит так, пользователь
1) наживает на кнопку сформировать накладную, открывается окно с данными по накладной-- транзакция начинается
2) пользователно по нажатии на кнопку добавить товар в накладную- появляется окно добавления товара, тут вводится данные и нажимается ок
3) по нажатию ок возвращается в окно с накладной, в нем в гриде появлется информация о товаре который добавили в пункте 2, так можно добаить неограниченное кол-во товара.
4) далее можно провести накладную-коммит транзакции, или отклонить-откат транзакции
Наймите программиста, если лень читать...