// Шаблон строки ConnectionString.
const AnsiString csDataBaseConnect = "....path=%s,...login=%s,...password=%s...";
//...
void TForm1::Connect_DB (void) // Обработчик события OnCreate для формы интерфейса БД
{
AnsiString File = edFileName->Text;
AnsiString Login = edLogin->Text;
AnsiString Pass = edPass->Text;
AnsiString FullString := Format (csDataBaseConnect, ARRAYOFCONST ((File, Login, Text));
AdoConnection1->Connected = false;
AdoConnection1->ConnectionString = FullString;
AdoConnection1->Connected = true;
}
Подлючение к MDB c паролем
Пытаюсь соединиться к запароленнуму mdb файлу через ADO
в ADOconnection c по мощью мастера пропимываю строку,
поставщик данных:Microsoft Jet 4.0 OLE DB Privider
выбираю файл базы,ввожу пароль базы,
user по умолчанию Admin, нажимаю проверить подключение, вылетает вот такая
ерунда:
Не выполнена проверка подключения из-зи ошибки инициализации поставщика.
Не удается запустить приложение. Системная база данных отсутствует или
открыта с монопольным доступом другим пользователем.
Как тогда к ней подлючиться кто нить знает?
Пытаюсь соединиться к запароленнуму mdb файлу через ADO
в ADOconnection c по мощью мастера пропимываю строку,
поставщик данных:Microsoft Jet 4.0 OLE DB Privider
выбираю файл базы,ввожу пароль базы,
user по умолчанию Admin, нажимаю проверить подключение, вылетает вот такая
ерунда:
Не выполнена проверка подключения из-зи ошибки инициализации поставщика.
Не удается запустить приложение. Системная база данных отсутствует или
открыта с монопольным доступом другим пользователем.
Как тогда к ней подлючиться кто нить знает?[/QUOTE]
Решил поднять эту тему. У меня такая же проблема. Помогите кто знает.
По умолчанию, указан Admin без пароля - это соответствует состоянию базы данных "по умолчанию", для которой не указаны разрешения на доступ к данным.
Чтобы подключиться к БД с изменёнными настройками безопасности, нужно ввести в эти поля соответствующее имя пользователя и его пароль - потом нажать кнопку "Test connection".
Для подключения к БД во время выполнения программы, нужно, сохранив шаблон для ConnectionString, вписать в него требуемые значения (например, функцией AnsiString::Format) и записать полученное значение в объект интерфейса базы данных.
Совершенно аналогичная трабла. Пытаюсь подконнеткиться через стандартные средства MS Access 2003, получаю ту же ошибку. Логин и пароль для доступа к БД совершенно точно правильные. el scorpio , не могли бы вы пояснить на примере MS Access как сделать описанное вами?
Если на этом этапе возникает ошибка - проблема в пароле, файле БД или драйверах БД.
Если проверка подключения прошла успешно, то нужно посмотреть ConnectionString и заменить логин/пароль на спецсимволы форматирования строки.
Дальше код идёт на Borland C++ Builder, но его легко можно переписать на Delphi.
Код:
Параметры функции Format для Dephi смотрите в хелпе по VCL.