TADOConnection – Ispravan način da se koristi LoginPrompt := true

Delphi. Nisam do sada nikako razumeo šta LoginPrompt := true uopšte radi. Ali sada znam da je ispravan način da se koristi sledeći:

procedure TfrmMain.FormShow(Sender: TObject);
var
  i: integer;
begin
  con1.Provider := 'SQLOLEDB.1';
  con1.Properties['Application Name'].Value := Application.Title;
  with TIniFile.Create(ExtractFileDir(ParamStr(0)) + '\setup.ini') do
  begin
    con1.Properties['Initial Catalog'].Value := ReadString('database', 'Initial Catalog', '');
    con1.Properties['Data Source'].Value := ReadString('database', 'Data Source', '');
    if ReadBool('database', 'Integrated Security', false ) then
    begin
      con1.Properties['Integrated Security'].Value := 'SSPI';
      con1.Properties['Persist Security Info'].Value := 'False';
      con1.LoginPrompt := False;
    end
    else
    begin
      con1.Properties['Persist Security Info'].Value := 'True';
      con1.LoginPrompt := true;
    end;
  end;
end;

procedure TfrmMain.con1Login(Sender: TObject; Username, Password: string);
begin
  con1.Properties['User ID'].Value := Username;
  con1.Properties['Password'].Value := Password;
end;
  

Ovaj kod čita neka obeležja potrebna za objekat konekcije iz INI datoteke. Onda, na osnovu vrednosti Integrated Security obeležja koje nalazi u fajlu odlučuje da li će da koristi ugrađenu bezbednost (vindovs) ili sikjuel server bezbednost. Ako koristi sikjuel server beѕbednost onda će OnLogon događaj biti pozvan nakon poziva fukcije Open nad konekcijom. Ali malo pre toga će korisnik dobiti na ekranu obrazac za unost korisničkog imena i lozinke. I onda možete postaviti te vrednosti u događaju.

Važno je da se koristi kolekcija obeležja za dodeljivanje ovih vrednosti a ne zamena stringova u string konekcije, jer tako neće hteti da radi.

Podelite sa nekim na: