![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как поставить пароль на MDB в рантайме [D6, M$ Access2000]
Лесник © (2003-03-28 20:45:00)Помогите с такой проблемой. В рантайме создается база данных аксеса, и после ее создания необходимо поставить на нее пароль тоже в рантайме. Пример создания базы:
procedure TfrmNewDatabase.FlatButton1Click(Sender: TObject);
var DataSource,dbName:string;
db: Database;
begin
dbName:="D;\Samples\samle.mdb";
DataSource:="Provider=Microsoft.Jet.OLEDB.4.0" +";Data Source=" + dbName +";Jet OLEDB:Engine Type=5";
MSADOCatalog1.Create1(DataSource);
MSADOCatalog1.Disconnect;
MSADOCatalog1.Free;
//db.Close;
ADOCommand.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+dbName+";Mode=ReadWrite;Persist Security Info=False";
ADOCommand.CommandText:="ALTER DATABASE PASSWORD "новыйпароль" """;
ADOCommand.Execute;
end;
Если db.Close;закоментировано получаю сообщение что пытаюсь подключится к БД которая УЖЕ эксклюзивно открыта, а если раскоментировать db.Close;то получаю ошибку нарушения доступа и указатель становится на строку db.Close;
Как же всетаки запаролить БД, или для аксеса другая команда закрыть БД не db.Close;
Спасибо.
Лесник (2003-03-28 23:07:00) [1]Нд-а значит пора отдохнуть, переработался.
Спасибо за помощь.
sniknik (2003-03-28 22:52:00) [2]почему не добавиш строчку чтобы база создавалась с паролем?
...
DataSource:= "Provider=Microsoft.Jet.OLEDB.4.0" +";Data Source=" + dbName +";Jet OLEDB:Engine Type=5; Jet OLEDB:Database Password=111;";
MSADOCatalog1.Create1(DataSource);
...
пароль тут 111, если не догадался :о)))
(ALTER ... для изменения существующего, кстати кавычки "" лишние)
и еще эксклюзивно открыта база у которой в строке есть Mode=Share Deny Read|Share Deny Write;