Приветствия,
У меня проблема: я не могу соединиться с запароленной базой данных MS Access. Для соединения я использую класс
OledbConnection с передачей параметров авторизации через строку соединения.
Начну с того, что строка "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=base.mdb" проходит и соединение устанавливается.
Из статьи
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdrefjetprovspec.asp
я посмотрел формат строки соединения для ADO. Но в System.Data.Oledb формат похоже изменили: c строкой соединения
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=base.mdb;User ID=admin;Password=123;";
после вызова Open() получаю исключение:
Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
Пробовал поместить информацию о логине и пароле в Extended Properties, то есть
String conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"nwp.mdb\";Persist Security Info=True;Extended Properties=\"User ID=admin;Password=123;";
— вылетает исключение, что строка соединения не соответствует спецификации с символа номер 82 т.е., как я понимаю, Extended Properties здесь не поддерживаются
В этой связи у меня 2 вопроса:
Как можно авторизоваться, не используя передачу имени пользователя и пароля в ConnectionString ?
Как должна выглядеть строка подключения к базе данных, закрытой паролем?
Заранее благодарен,
Андрей.
Hello, !
You wrote on Tue, 03 Aug 2004 11:49:24 GMT:
> У меня проблема: я не могу соединиться с запароленной базой данных MS
> Access. Для соединения я использую класс OledbConnection с передачей
> параметров авторизации через строку соединения.
> после вызова Open() получаю исключение:
> Cannot start your application. The workgroup information file is missing
> or opened exclusively by another user.
http://support.microsoft.com/default.aspx?scid=kb;en-us;300699
With best regards,
Sergey
Posted via RSDN NNTP Server 1.9 beta
> Приветствия,
>
> У меня проблема: я не могу соединиться с запароленной базой данных
> MS Access. Для соединения я использую класс OledbConnection с
> передачей параметров авторизации через строку соединения.
>
> Начну с того, что строка "Provider=Microsoft.Jet.OLEDB.4.0; Data
> Source=base.mdb" проходит и соединение устанавливается.
>
> Из статьи
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdrefjetprovspec.asp
> я посмотрел формат строки соединения для ADO. Но в System.Data.Oledb
> формат похоже изменили: c строкой соединения
>
> "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=base.mdb;User
> ID=admin;Password=123;";
>
> после вызова Open() получаю исключение:
> Cannot start your application. The workgroup information file is
> missing or opened exclusively by another user.
...
Андрей,
эта ошибка возникает, когда используешь защиту на уровне группы. Тебе надо включить в ConnectionString место и назваеие системной таблицы, напр. так на VB.NET:
...
Dim cnn As New System.Data.OleDb.OleDbConnection
Dim ConnString As New System.Text.StringBuilder
With cnn
If .State = ConnectionState.Open Then .Close()
With ConnString
.Append("provider=microsoft.jet.oledb.4.0;")
.Append("data source=" & strFileName & ";")
.Append("Jet OLEDB:System database=""c:\me\vb6\system.mdw"";")
...
.Append("Password=""" & pw & """;")
End With
.ConnectionString = ConnString.ToString
Try
.Open()
Return (cnn)
Catch ex As Exception
MsgBox("ошибка: " & ex.ToString)
Return Nothing
End Try
...
Peter
Posted via RSDN NNTP Server 1.8
У меня та же проблема что и у автора, но воспользоваться ответом у меня не получается. В общем задача следующая: чтобы вместе с программой была БД под паролем, с которой программа бы и работала. Соответственно БД не должна зависить от конкретного компьютера. Можно как-нибудь в таком случае обойтись без mdw файлов, или если нельзя, зачем они нужны? как их создавать? Что задают имя, организация и код группы при создании рабочей группы.
Заранее спасибо!
Здравствуйте, Аноним, Вы писали:
если БД запоролена в Access через Tools->Security->Set Databes Password, то строка подключения будет
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=base.mdb;Jet OLEDB:Database Password=пароль;