euthymos
07-05-2006, 12:09
Salve,
ho realizzato un programma in Delphi che accede attraverso ADO a dei dati custoditi in un DB Access.
Il problema è che questo DB access potrebbe (o potrebbe non) essere protetto da password.
Quando il programma prova ad accedere a un database protetto, viene lanciata un'eccezione del tipo EOleException, e non EWrongPassword (magari esistesse! ): quindi non c'è modo di distinguere un'eccezione qualsiasi da quella per password errata.
Come faccio a mostrare all'utente la form per l'inserimento di una password solo se è il database è effettivamente protetto?
Accedo al DB Access mediante TADOQuery, in questo modo:
DBConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
DbCorrente +
';Mode=Share Deny Read|Share Deny Write;Persist Security Info=False';
EffettuaConnessione(DBConnectionString);
procedure TFormPrincipale.EffettuaConnessione(DBConnectionString : string);
begin
if ConnessioneEffettuata = False then
begin
try
DefaultADOQuery := TADOQuery.Create(self);
DefaultADOQuery.ConnectionString := DBConnectionString;
finally
ConnessioneEffettuata := True;
end;
end;
end;
Grazie... :D
ho realizzato un programma in Delphi che accede attraverso ADO a dei dati custoditi in un DB Access.
Il problema è che questo DB access potrebbe (o potrebbe non) essere protetto da password.
Quando il programma prova ad accedere a un database protetto, viene lanciata un'eccezione del tipo EOleException, e non EWrongPassword (magari esistesse! ): quindi non c'è modo di distinguere un'eccezione qualsiasi da quella per password errata.
Come faccio a mostrare all'utente la form per l'inserimento di una password solo se è il database è effettivamente protetto?
Accedo al DB Access mediante TADOQuery, in questo modo:
DBConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
DbCorrente +
';Mode=Share Deny Read|Share Deny Write;Persist Security Info=False';
EffettuaConnessione(DBConnectionString);
procedure TFormPrincipale.EffettuaConnessione(DBConnectionString : string);
begin
if ConnessioneEffettuata = False then
begin
try
DefaultADOQuery := TADOQuery.Create(self);
DefaultADOQuery.ConnectionString := DBConnectionString;
finally
ConnessioneEffettuata := True;
end;
end;
end;
Grazie... :D