Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > обновление БД


Автор: namra 22.2.2009, 13:10
Можно ли так сделать, если да то как?
На одном компе (1) есть БД, при добавлении записи в эту БД, надо чтобы добавленая запись появлялась также на другом компе (2) в БД.

Автор: Данкинг 22.2.2009, 13:20
Не проще сетевую БД сделать?

Автор: namra 22.2.2009, 14:11
Цитата(Данкинг @  22.2.2009,  13:20 Найти цитируемый пост)
Не проще сетевую БД сделать?

Связь клиент - сервер у меня с помощью сокетов. БД - Access.
Тогда другой вопрос, не можешь подсказать код как подключиться клиенту к базе Access расположенной на сервере (сервер находится в локалке). 
а то у меня всякие ошибки выходят, не разу не делал сетевую бд.

Автор: Данкинг 22.2.2009, 14:19
Цитата(namra @  22.2.2009,  14:11 Найти цитируемый пост)
Тогда другой вопрос, не можешь подсказать код как подключиться клиенту к базе Access расположенной на сервере (сервер находится в локалке). 

Тогда не знаю, я лично кроме как обычным способом к MDB на серваке не подключался. Безо всяких там клиент-сервер... smile 

Автор: namra 22.2.2009, 14:31
Цитата(Данкинг @  22.2.2009,  14:19 Найти цитируемый пост)
Тогда не знаю, я лично кроме как обычным способом к MDB на серваке не подключался. Безо всяких там клиент-сервер.

Данкинг напиши код как ты подключаешься способом к MDB пожайлуста.

Автор: Данкинг 22.2.2009, 14:34
Цитата(namra @  22.2.2009,  14:31 Найти цитируемый пост)
Данкинг напиши код как ты подключаешься способом к MDB пожайлуста.

Ну обычно, через ADO и строку подключения. Всё равно написать??

Автор: namra 22.2.2009, 14:38
ADOConnection1.ConnectionString:='\\admin\C:\1\video.mdb'
admin - имя сервера в локалке. Выдает: Дисковая или сетевая ошибка. Для папки (1) открыт общий доступ на чтение. 

Автор: Данкинг 22.2.2009, 15:10
У нас сервак подключается отдельным диском (E:), таким образом, путь указывается просто как e:\aaa\bbb.mdb  smile 

Автор: Hexel 23.2.2009, 22:31
namra, то о чем ты говоришь, называется репликация. по хорошему она делается сетевыми БД и это весьма нетривиальный вопрос, даже если читаешь книги.

Если же оставился на MDB, то механизм репликации придется писать руками. почитай как это происходит в общих чертах в справке по любой сетевой БД. А насчет "не коннектиться по сети" - нужно открыть папку на полный доступ, а не "только чтение" (проверь).

По сути, раз уж MDB позвляет подключаться многим пользователям, твой долг как программиста просто сделать простенький механизм нотификаций между клиентами типа "обновляйтесь, тут изменения внесли""  smile 

Автор: Akella 23.2.2009, 23:37
Цитата(Hexel @  23.2.2009,  22:31 Найти цитируемый пост)
и это весьма нетривиальный вопрос,

ох это да smile

Добавлено через 5 минут и 6 секунд
Цитата(Hexel @  23.2.2009,  22:31 Найти цитируемый пост)
еханизм нотификаций между клиентами типа "обновляйтесь, тут изменения внесли"" 

Ой лучше так не делать. Может быть так, что программа только и будет занята тем, что тратить все свои ресурсы и ресурсы ОСи на то, чтобы показать пользователю новые/обновлённые данные smile . Лучше сделать в окне кнопку Обновить. Если что, то пользователь сам обновит текущий набор данных. А если идёт добавление/редактирование данных то новые данные и сами подгрузятся безо всяких нотификаций.

Автор: namra 25.2.2009, 19:52
ок, спс всем.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)