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.