Delphi, Ado, Запароленая Access-база и Microsoft.Jet.OLEDB.4.0....
У кого-нибудь получалось?
У меня все нормально работает, пока не поставлю пароль на базу.
Как только поставлю - при соединении выдает ошибку, дескать база данных отсутствует, либо открыта другим юзером с монопольным доступом".
Пробовал соединяться с помощью ODBC, там другой косяк: при активации таблицы через AdoTable вылетает ошибка о Null-полях... Да и не нужно мне ODBC. Короче не знаю как быть.
Стоило наконец-то обратиццо к общественности и нашлось все сразу ))))
Взято с delphikingdom :
Цитата:
То, что советовали про "User" и "Password" - это если используются профили пользователей. Если пароль задан на базе (как в описываемом случае), то надо задавать не "Password", а "Jet OLEDB:Database Password". Например, у меня формирование ConnectionString выглядит так:
Код:
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'User ID=Admin;' +
'Data Source=' + ExtractFilePath(Application.ExeName) + 'название файла БД, он лежит в папке приложения' + ';' +
'Mode=Share Deny None;' +
'Extended Properties="";' +
'Jet OLEDB:System database="";' +
'Jet OLEDB:Registry Path="";' +
'Jet OLEDB:Database Password=' + 'Пароль' + ';' +
'Jet OLEDB:Engine Type=5;' +
'Jet OLEDB:Database Locking Mode=1;' +
'Jet OLEDB:Global Partial Bulk Ops=2;' +
'Jet OLEDB:Global Bulk Transactions=1;' +
'Jet OLEDB:New Database Password="";' +
'Jet OLEDB:Create System Database=False;' +
'Jet OLEDB:Encrypt Database=False;' +
'Jet OLEDB:Don' + '''' + 't Copy Locale on Compact=False;' +
'Jet OLEDB:Compact Without Replica Repair=False;' +
'Jet OLEDB:SFP=False'
|
|