Автор Тема: multi user db Access  (Прочитано 2829 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xaxaTyH

  • Титулярный советник
  • ****
  • Сообщений: 192
  • Репутация: 0
  • Пол: Мужской
multi user db Access
« : БХЭвпСам 11, 2008, 12:23:33 am »
Добрый вечер.

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

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

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

В коде своей программы подключаюсь так:
Код: (csharp) [Выделить]
//Connection string
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 полностью закрыт, файлов блокировки нет, чужая прога тоже закрыта. Скажите, пожалуйста, в чем проблема?
Чтобы обрести настоящую свободу, нужно потерять все...