Ver Mensaje Individual
  #1  
Antiguo 08-01-2008
Leviatan Leviatan is offline
Miembro
 
Registrado: oct 2005
Posts: 56
Reputación: 21
Leviatan Va por buen camino
Cómo bloquear un documento

Hola amigos:

Les planteo el siguiente código:

Código Delphi [-]
procedure TForm2.Button3Click(Sender: TObject);
var
  Blob: TStream;
begin
  Screen.Cursor := crHourGlass;

  with ADOQuery1 do begin
    Close;
    SQL.Clear;
    SQL.Add('select * from tabla');
    Open;
  end;

  ADOQuery1.Edit;
  blob := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('archivo'), bmRead);

  try
    blob.Seek(0, soFromBeginning);

    Ruta := 'C:\temp\' + ADOQuery1['nombre_archivo'];

    with TFileStream.Create(Ruta, fmCreate) do
      try
        CopyFrom(blob, blob.Size);
      finally
        Free
      end;
      ShellExecute(0, 'open', PChar(Ruta), nil, nil, SW_SHOWNORMAL);
  finally
    blob.Free
  end;

  Screen.Cursor := crDefault;

end;

Aquí lo que hago es recuperar un archivo guardado en una base de datos en una columna de tipo "Image" de SQL Server, luego crearlo en un directorio temporal y luego mostrarlo con la aplicación correcta.

La consulta es la siguiente: si por ejemplo "Juan Pérez" creó el documento entonces debería poder leer y escribir en él. En cambio "Juan González" solamente debería poder leer el archivo y no escribir en él. ¿Cómo puedo lograr eso?

Gracias anticipadas.

Última edición por dec fecha: 08-01-2008 a las 16:40:23.
Responder Con Cita