Пароли на базу данных Access

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Установка/Изменение/Удаление пароля на базу данных Access

Функция для удаления, задания и изменения пароля базы данных Access используя DAO Engine.

PS. кто будет использовать - в комментариях отметьте версии ОС, Access,Delphi.

Зависимости: Dialogs,DAO2000,ComObj
Автор: savva, Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , ICQ:126578975, Орел
Copyright: Сапронов Алексей (Savva)
Дата: 13 сентября 2002 г.
***************************************************** }


//определяем тип, указывающий действие над паролем
type
TPasswordAction = (paSet, paChange, paRemove);

....

function ChangeAccessDBPassword(DatabaseName: string; action: TPasswordAction;
OldPassword: string = ''; NewPassword: string = ''): boolean;
var
DAO: _DBEngine;
db: Database;
ClassID: TGUID;
V35, V36: string;
oldPass, newPass: string;
begin
Result := false;
V35 := 'DAO.DBEngine.35';
V36 := 'DAO.DBEngine.36';
try
try
ClassID := ProgIDToClassID(v36);
except
try
ClassID := ProgIDToClassID(v35);
except
raise;
end;
end;
DAO := CreateComObject(ClassID) as _DBEngine;
if action = paSet then
begin
db := DAO.OpenDatabase(DatabaseName, true, false, '');
db.NewPassword(#0, NewPassword);
end
else
begin
db := DAO.OpenDatabase(DatabaseName, true, false, ';pwd=' + OldPassword);
if action = paChange then
db.NewPassword(OldPassword, NewPassword)
else
db.NewPassword(OldPassword, #0);
end;
Result := true;
except
// выводим сообщение о ошибке
on E: Exception do
begin
Result := false;
ShowMessage(e.message);
end;
end;
end.

Пример использования:

//устанавливаем новый пароль - БАЗА ДОЛЖНА БЫТЬ НЕ ЗАПАРОЛЕНА,
// иначе будет ошибка:)

procedure TForm1.Button1Click(Sender: TObject);
var
newPass: string;
begin
if InputQuery('New password', 'Enter new password', newPass) then
if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + 'db2.mdb', paSet,
'', newPass) then
ShowMessage('OK!')
else
ShowMessage('Error!');
end;

//изменяем пароль

procedure TForm1.Button2Click(Sender: TObject);
var
oldPass, newPass: string;
begin
if InputQuery('Old password', 'Enter old password', oldPass) then
if InputQuery('New password', 'Enter new password', newPass) then
if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + 'db2.mdb',
paChange, oldPass, newPass) then
ShowMessage('OK!')
else
ShowMessage('Error!');
end;

//удаляем пароль

procedure TForm1.Button3Click(Sender: TObject);
var
oldPass: string;
begin
if InputQuery('Password', 'Enter password', oldPass) then
if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + 'db2.mdb',
paRemove, oldPass, '') then
ShowMessage('OK!')
else
ShowMessage('Error!');
end
 
« Предыдущая статья   Следующая статья »