Как заставить работать этот код?

Суть такова: при входе в приложение юзеру показывается форма с выбором действия. Затем эта форма вызывает другую форму, перед показом которой подключается база. При запуске возникают две странности:
1) Запрашивает логин и пароль, при том, что LoginPrompt = false
2) Выдает ошибку "Your user name and password are not defined..."

Форма 1: (создание основной формы)
procedure Tauth.next_buttonClick(Sender: TObject);
begin
  Application.CreateForm(TFmain, FMain);
  FMain.Show;
  Close;
end;


Форма 2: (которая работает с базой)
procedure TFMain.FormCreate(Sender: TObject);
var
  ini : TIniFile;
  login : String;
  pass : String;
  location: String;

begin
  ini := TIniFile.Create('./config.ini');

  try
    login := ini.ReadString('Database', 'user_name', 'SYSDBA');
    pass := ini.ReadString('Database', 'password', 'masterkey');
    location := ini.ReadString('Database', 'location', 'localhost:./DATABASE.fdb');
  finally
    ini.Free;
  end;


  with DB do
  begin
    Connected := False;

    DatabaseName := location;

    Params.Clear;
    Params.Add('user_name=' + login);
    Params.Add('password=' + pass);

    LoginPrompt := false;
    Connected := true;
  end;
//Затем - включение DataSet'ов с DataSource'ами
  • Вопрос задан
  • 2531 просмотр
Пригласить эксперта
Ответы на вопрос 2
svd71
@svd71
1. Убедитесь, что пароль и имя пользователя такие же, как и должны быть.

2. попробуйте переписать строку соединения с базой на полный путь, а не на относительный путь. База должна располагаться не на съемном носителе. Так же попробуйте localhost заменить на 127.0.0.1 и попробуйте с указанием порта 3050. Часто такой глюк бывает на Виндовс системах, где инсталяция криво пробежала и не модифицировала services.

3. В строке сединения нужно еще указать с каким charset будуте работать.
Ответ написан
Я бы разделил вопросы создания формы и подключения к FB.

Повесьте обработчик на кнопку на созданной форме и смотрите под отладчиком, что происходит.
Приходят ли из ini данные для подключения и т.д...
Когда будет стабильно подключаться, переносите код подключения на onCreate.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы