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.
Ostavite odgovor