Hola:
Estoy tratando que los datos de una aplicación -almacenados en una DB MSAccess- sólo sean accesibles en modo lectura en función del usuario que acceda.
Todos los procesos sobre las diversas tablas de la base de datos se realizan con componentes ADO, que emplean la misma conexión.
En principo he asignado a Mi_ADOConnection.Mode el valor Read, pero al realizar el primer acceso a una tabla cambia a ShareDenyNone.
Código Delphi
[-]procedure TList_tbl_users.Load(sql: string; Conexion: TADOConnection);
var
Q: TADOQuery;
W: Ttbl_users;
begin
Q:= TADOQuery.Create(nil);
try
Q.SQL.Text:= Sql;
Q.Connection:= Conexion; ==> [Al consultar el valor de Conexion.Mode devuelve Read]
Q.Open;
Q.First; ==> [Al consultar el valor de Conexion.Mode devuelve ShareDenyNone]
while not Q.Eof do
begin
W:= Ttbl_users.Crear(Conexion);
W.Load(Q.Fields[0].AsInteger);
Self.Add(W);
Q.Next;
end;
finally
Q.Free;
end;
end;
Es el método Open quien lo modifica.
¿Dónde está el error?
Uso:
.- Delphi 7
.- Microsoft.Jet.OLEDB.4.0
.- MSAcces 97
Muchas gracias de antemano.
Un Saludo