{ **** UBPFD *********** by delphibase.endimus.com ****
>> Установка/Изменение/Удаление пароля на базу данных Access
Функция для удаления, задания и изменения пароля базы данных Access используя DAO Engine.
PS. кто будет использовать - в комментариях отметьте версии ОС, Access,Delphi.
Зависимости: Dialogs,DAO2000,ComObj
Автор: savva, savva@nm.ru, 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";
trytry
ClassID := ProgIDToClassID(v36);
excepttry
ClassID := ProgIDToClassID(v35);
exceptraise;
end;
end;
DAO := CreateComObject(ClassID) as _DBEngine;
if action = paSet thenbegin
db := DAO.OpenDatabase(DatabaseName, true, false, "");
db.NewPassword(#0, NewPassword);
endelsebegin
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 dobegin
Result := false;
ShowMessage(e.message);
end;
end;
end.
Пример использования:
//устанавливаем новый пароль - БАЗА ДОЛЖНА БЫТЬ НЕ ЗАПАРОЛЕНА,// иначе будет ошибка:)procedure TForm1.Button1Click(Sender: TObject);
var
newPass: string;
beginif InputQuery("New password", "Enter new password", newPass) thenif ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + "db2.mdb", paSet,
"", newPass) then
ShowMessage("OK!")
else
ShowMessage("Error!");
end;
//изменяем парольprocedure TForm1.Button2Click(Sender: TObject);
var
oldPass, newPass: string;
beginif InputQuery("Old password", "Enter old password", oldPass) thenif InputQuery("New password", "Enter new password", newPass) thenif ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + "db2.mdb",
paChange, oldPass, newPass) then
ShowMessage("OK!")
else
ShowMessage("Error!");
end;
//удаляем парольprocedure TForm1.Button3Click(Sender: TObject);
var
oldPass: string;
beginif InputQuery("Password", "Enter password", oldPass) thenif ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + "db2.mdb",
paRemove, oldPass, "") then
ShowMessage("OK!")
else
ShowMessage("Error!");
end;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Пароли на базу данных Access", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!