Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.28;
Скачать: [xml.tar.bz2];

Вниз

Соединение с запароленной базой через ADO   Найти похожие ветки 

 
Zergling   (2003-07-04 06:32) [0]

Доброго Всем дня! Есть запароленная база. Произвожу с ней соединение через TADOConection, свойство компонента LoginPrompt установил в true. При соединение с БД выводиться "LoginPromp". После ввода имени пользователя и пароля выводиться сообщение, что база данных не найдена или открыта в монопольном режиме другим пользователем. Но когда пароль снят с БД все открывается без проблем. Как быть? Что я неверно делаю? Подскажите пожалуйста.


 
sniknik   (2003-07-04 08:22) [1]

неверное то что "После ввода имени пользователя и пароля" а пароль задан на базу (разные вещи). на базу задается в строке подключения в Data Link Properties это в закладке All - Jet OLEDB:Database Password=111
(или просто дописать к строке)

нда чуть не забыл, это для подключения через Jet, для ODBC алиаса Access будет по другому. (как не знаю, не пользовался, но наверняка не сложнее чем с jet)


 
Zergling   (2003-07-04 09:02) [2]

sniknik © (04.07.03 08:22)
%-( Тоже самое. В БД создал нового пользователя. Дал ему все разрешения. Далее в Data Link жестко прописал имя пользователя и пароль БД. Выводит тоже самое сообщение. Тоже работаю через MS Jet 4.0.


 
sniknik   (2003-07-04 10:47) [3]

я же говорю юзер и база разные вещи, на юзера по другому задается через системную базу.
оставь юзера Admin (по умолчанию) пароль пустой. а в лополнительной закладке в Data Link -> All ставь значение твоего пароля в пункте Jet OLEDB:Database Password.


 
Zergling   (2003-07-07 08:30) [4]

sniknik © (04.07.03 10:47)

Чушь какая то! Нефига не получается! Тоже сообщение.
По порядку:

1. Provider
a. MS Jet 4.0 OLE DB Provider

2. Connection
DataBase Name - путь к моей базе
a. User Name - Admin
b. Password - пустой
c. Blank password - checked=true
d. Allow saving password - checked=false

3. Advanced
a. Access permissions - ReadWrite

4. All
a. Jet OLEDB:Database Password - пароль установленный в моей БД

Может проблема в чемто другом? Может в Access еще что то нужно сотворить, или в TADOConnection чего нибудь установить? Вполне вероятно, что до меня упорно, что то не доходит. Разжуйте глупому пожалуйста.


 
Edward   (2003-07-07 11:06) [5]

С провайдером Provider=Microsoft.Jet.OLEDB.4.0, база действительно не открывается, попробовал через Provider=MSDASQL.1, создав пользовательский DSN в ODBC32 Administrator, работает, строка подключения:
Provider=MSDASQL.1;Persist Security Info=True;Data Source=SecMdb, где SecMdb - DSN, при этом необязательно в соединении указывать пароль и имя что в DSN, так и в ConnectionString, пароль и имя можно задать в событии ADOConnectionWillConnect:
procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection;
var ConnectionString, UserID, Password: WideString;
var ConnectOptions: TConnectOption; var EventStatus: TEventStatus);
begin
UserID := "Admin";
Password := "123";
end;
, при этом LoginPromt:=False.


 
sniknik   (2003-07-07 11:12) [6]

> Edward (07.07.03 11:06)
> С провайдером Provider=Microsoft.Jet.OLEDB.4.0, база действительно не открывается,
странно, я уже года два так работаю и даже не замечал что не открывается. глюки? ;о))

Zergling © (07.07.03 08:30)
это если пароль на базу, и больше ничего не нужно. ну разве для удобства отключить LoginPrompt в ADOConnection
просто заведи строку со своими изменениями (имени базы и пароля, больше ничего не меняй)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\DataBaseName.MDB;Persist Security Info=False;Jet OLEDB:Database Password=111

> Может проблема в чемто другом?
явно в другом, но не в Access-е.
может у тебя как раз пароль на юзера, как ты его заводил?
(на юзера это это отдельная песня)


 
Zergling   (2003-07-07 11:37) [7]

sniknik © (07.07.03 11:12)

> ну разве для удобства отключить LoginPrompt в ADOConnection

Не для удобства, а грабля оказывается ВНЕМ БЫЛА!!! Ну-у-у блин скоко я промаялся! Проект уже почти закончил, а тут дело все встало из-за пороля. sniknik © БОЛЬШОЕ СПАСИБО! ВСЕ РАБОТАЕТ.

P.S. надеюсь вопросаим не очень замучил.


 
Edward   (2003-07-07 12:04) [8]

Спасибо sniknik © (07.07.03 11:12), заработало! :-))


 
Zergling   (2003-07-07 12:05) [9]

Еще вопрсец назрел. Сразу не сооброзил по этому поводу. Желательно чтобы перед соединением с БД пользователь сам вводил пороль т.к. в *.udl файле пароль открыто лежит на диске. Можно конечно и в ConnectionString накатать, но при смене пароля в БД предется заного проект перекомпелировать. Создал форму для ввода пароля, а теперь необходимо программно достучаться до Jet OLEDB:Database Password. Ищу, но пока не нащел. Если кто знает подскажите люди добрые.


 
Edward   (2003-07-07 12:19) [10]

Так ConnectionString формируй в runtime, показываешь форму с вводом пароля, формируешь строку как у sniknik ©
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\DataBaseName.MDB;Persist Security Info=False;Jet OLEDB:Database Password=Сюда вставляешь введенный пользователем пароль, и пытаешся открыть базу, не открывается, значит пароль неверный, мессадж пользователю.


 
Zergling   (2003-07-07 14:14) [11]

Еще проблемка.
Edward (07.07.03 12:19)
> Так ConnectionString формируй в runtime, показываешь форму с вводом пароля,

Можно, но:
1. Программу могут перенести к примеру на систему с Microsoft.Jet.OLEDB.3.0, а не с Microsoft.Jet.OLEDB.4.0 => как узнать установленную версию Microsoft.Jet.OLEDB?
2. Поэтому я решил попробовать читать данные из *.udl файла, а строку с паролем в конец приписать (надеюсь порядок следования не играет особого значения). Но ето я уже завтра поэксперементирую.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.07.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
6-91805
SergeyI
2003-05-21 09:04
2003.07.28
Написание


1-91726
LKJJ
2003-07-14 14:36
2003.07.28
Как сделать полупрозрачную форму?


11-91698
IZVER
2002-11-18 08:42
2003.07.28
Сокеты, прокси....


4-91945
Spider
2003-05-24 16:52
2003.07.28
Как придать объекту свойства саption panel?


14-91836
Hollywood
2003-07-10 19:10
2003.07.28
А как вообще зарегистрироваться на этом форуме?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский