Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2012, 18:08   #1
<- DelpHIFanat ->
Пользователь
 
Аватар для <- DelpHIFanat ->
 
Регистрация: 07.11.2011
Сообщений: 58
По умолчанию Как узнать пароль файла базы данных из программы на Delphi?

Приветствую, участники! Допустим, у меня есть база данных Access, к которой подключается программа, написанная на Delphi. Как узнать какой у базы пароль, чтобы его запросить у пользователя при запуске приложения? Как поменять пароль знаю (технология DAO), но как узнать присутствует пароль или нет (а тем более сам пароль) понятия не имею. Конечно, можно, его сохранить в каком-нибудь файле (ini, например), но не хотелось бы так делать (ИБ всё-таки).
Лучше вообще не иметь знаний о чём-то, чем иметь неправильные знания об этом!..
<- DelpHIFanat -> вне форума Ответить с цитированием
Старый 09.05.2012, 19:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем вообще программе знать это? Это пользователь должен знать, он вводит или нет пароль, а программа в зависимсости от этого пытается приконектиться к базе с паролем или без пароля
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.05.2012, 19:45   #3
<- DelpHIFanat ->
Пользователь
 
Аватар для <- DelpHIFanat ->
 
Регистрация: 07.11.2011
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А зачем вообще программе знать это?
Просто я однажды уже что-то подобное пытался сделать, но сделал это как-то по-тупому: пытался узнать пароль из свойства ConnectionString (код приложил). Тогда, думаю, раз программе это знать не нужно, то через блок Try...Except...End попробовать - если будет ошибка, то прога, по идее, подрубиться к базе не должна.

Код:
procedure TfDM.DataModuleCreate(Sender: TObject);
Var
  mr, MesRes: Integer;
  Pass, ConStr, ConPass: String;
begin
  ConStr:=ADOConnection.ConnectionString;
  ConPass:=ConStr;
  Delete(ConPass, 1, Pos('Jet OLEDB:Database Password=', ConPass));
  Delete(ConPass, 1, Pos('=', ConPass));
  Delete(ConPass, Pos(';', ConPass), Length(ConPass));

  Repeat
    mr:=PasswordDialogForm.ShowModal;

    If (mr=mrOk) Then
      If (PasswordDialogForm.EditPassword.Text=ConPass) Then
        Begin
          MessageBox(0,
            PChar('Добро пожаловать!'),
            PChar('Вход в программу'),
            MB_OK + MB_ICONINFORMATION + MB_APPLMODAL + MB_TOPMOST);
          Break;
        End
      Else
        Begin
          MesRes:=MessageBox(0,
            PChar('Неверный пароль! Хотите повторить попытку?'),
            PChar('Вход в программу'),
            MB_YESNO + MB_ICONERROR + MB_APPLMODAL + MB_TOPMOST);
          If (MesRes=ID_NO) Then
            Halt;
        End
    Else If (mr=mrCancel) Then
      Begin
        MessageBox(0,
          PChar('Вход в программу отменён!'),
          PChar('Вход в программу'),
          MB_OK + MB_ICONINFORMATION + MB_APPLMODAL + MB_TOPMOST);
        Halt;
      End;
  Until (False);
end;
Лучше вообще не иметь знаний о чём-то, чем иметь неправильные знания об этом!..

Последний раз редактировалось <- DelpHIFanat ->; 10.05.2012 в 09:56.
<- DelpHIFanat -> вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы приложение базы данных работала на компьютерах без установленной программы delphi? Даниил_глазко БД в Delphi 6 09.11.2010 16:26
Как снять пароль на базы данных Paradox Viktoria30 БД в Delphi 3 02.02.2009 13:15