Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > multi user db Access


Автор: xaxaTyH 11.9.2008, 00:20
Добрый вечер.

Суть проблемы: Есть приложение (exe, no sources), которое обращается к своей бд (запароленной).
Формат бд: Access97. В базе кроме дефолтного Admin'a никто не прописан.

Возникла необходимость подключится к этой бд из своего приложения одновременно с работой другого приложения, которое эту бд использует. Т.е. нужно одновременное соединение с бд 2х приложений.

Делал так: конвертировал базу в формат Access 2000 (для возможности изменения). Прописал в базу пользователя - user, дал права на чтение бд. Потом конвертировал обратно в формат Access 97 (т.к. чужая прога воспринимает только этот формат).

В коде своей программы подключаюсь так:
Код
//строка подключения
private string dbconn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ADAP\PlateData.mdb;User Id=user;Jet OLEDB:Database Password=speedy";

//---

ADODB.Connection con = new Connection();
ADODB.Recordset rs = new Recordset();

con.Mode = ConnectModeEnum.adModeShareDenyNone;

con.Open(dbconn, "user", "", -1);

string msql = "select * from Wells";

rs.Open(msql, con, CursorTypeEnum.adOpenKeyset, LockTypeEnum.adLockOptimistic, -1);

//---


При открытии соединения с бд - con.open(..) - получаю exception: "Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем."

Хотя Access полностью закрыт, файлов блокировки нет, чужая прога тоже закрыта. Скажите, пожалуйста, в чем проблема?

Автор: Akina 11.9.2008, 07:43
Не поленитесь слазить в ADO API Reference и посмотреть, что же на самом деле пишется в ConnectionString. Там всего 5 возможных параметров, и попытка навязать свои дополнительные ни к чему хорошему не приводит.

Автор: bopoha 11.9.2008, 09:56
Для проверки можно создать текстовый файл, переименовать его расширение на udl, а потом кликнуть на получившемся файле два раза. В реузльтате откроется редактор подключейний. Там можете и проверить.

Автор: xaxaTyH 11.9.2008, 23:05
Спасибо за ответы. 

Проблема оказалось в следующем - чужая прога подключается к бд в эксклюзивном режиме (защита у нее такая, чтобы никто к базе не подключался). Буду решать вопрос созданием репликации.

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