|
|
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
На C++Builder пишу клиентскую часть для работы с файлом mdb. Для соединения с файлом базы данных использую средства ADO. Предполагается работа с базой данных в многопользовательском режиме (файл mdb лежит в сетевой папке). База данных маленькая, предполагается всего несколько пользователей. Для локального варианта со всем вроде бы разобрался. Но вот многопользовательский режим. Может кто-то уже делал подобное. Подскажите или дайте ссылку как правильно организовать работу для этого случая, какие механизмы лучше использовать? Например, если с одной таблицей работают сразу несколько пользователей, как правильно сделать обновление данных, чтобы пользователи видели у себя актуальные данные (кроме как разрывать соединение и заново соединяться ничего пока не нашел)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2007, 17:44 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
mdb слабо подходит для многопользовательской работы - почему бы вам не использовать MSDE ? Тем более что в будущих ОС он будет компонентом системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2007, 17:57 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет, буду думать. Но все же, есть хоть какие-то варианты с использованием mdb? Может кто-то это уже делал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 12:25 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
При подключении есть: Свойства ->Права доступа... Из справки... Выберите одно или несколько прав доступа. Read—Только чтение. ReadWrite—Чтение и запись. Share Deny None—Никому не отказывать ни в чтении, ни в записи. Share Deny Read—Запретить всем работу в режиме чтения. Share Deny Write—Запретить всем работу в режиме записи. Share Exclusive—Запретить всем работу в режиме чтения/записи. Write—Только запись. Вот этот режим должен дать многопользовательский режим доступа к БД: Share Deny None—Никому не отказывать ни в чтении, ни в записи. Лучше MSDE, а ещё лучше MSSQL Express, перегнать туда данные большого труда не составит. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 23:24 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
спасибо Alex_Toms за ответ, но имелось ввиду немного не то, попробую более конкретно. Предположим, что у пользователей есть одновременный доступ на запись в таблицу. Теперь если у пользователя открыта ADOTable, то как сделать обновление данных в ней, чтобы в случае изменения данных другими пользователями, у пользователя обновлялась таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:08 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
Каждые dt смотреть обновления. Реализация ограничена лишь фантазией и степенью изврата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:23 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
Так сразу ничего не получится. Многопользовательская система значительно отличается от однопользоательской. Без транзакций не обойтись никак - поэтому надо MSDE или SqlExpress. Программу надо переписывать. И еще разобраться с блокировками, пессимистическими и оптимистическими(как минимум прочитать на этом прекрасном форуме, что это такое). Если же не сделать - то в 95% случаев вся система отлично заработает, а в 5%, при одновременной работе с одной и той же записью начнутся серьёзные проблемы - в том числе и не правильные записи в базе. Так что как минимум на месяц работа будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 20:55 |
|
||
|
С++Builder+ADO+mdb
|
|||
|---|---|---|---|
|
#18+
Попробуй использовать тип курсора CursorType=ctDynamic, но имей в виду, что это самый дорогостоящий тип курсора с точки зрения ресурсов системы. И ещё можно работать с базой через ADOQuery, работать можно на языке запросов, удобнее обрабатывать группу записей. ADOTable больше подходит для работы с одним пользователем и с ним могут быть проблемы с блокировками. Это я на всякий случай, с MDB может быть этого и не будет. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 21:55 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=288&tid=2028604]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 324ms |

| 0 / 0 |
