Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 48

Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Access

Пароли на базу данных Access
{ **** 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';
  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;
Категория: Access | Добавил: Skinner (03.07.2008) | Автор: Savva E W
Просмотров: 397 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2024 Хостинг от uCoz