Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   mezcla de permisos en carpeta compartida (https://www.clubdelphi.com/foros/showthread.php?t=81231)

DarkBlue 24-10-2012 17:40:57

mezcla de permisos en carpeta compartida
 
Hola compañeros! . otra ves les traigo una pregunta muy sencilla , que puede ser solucionada con su experiencia aun no se si se puede sera que me puedan ayudar?.

PROBLEMA:

Necesito que en una carpeta compartida en red los usuarios puedan:
  • copiar archivos
  • leer los archivos
  • crear nuevos archivos en esa ubicacion
  • pero que no puedan borrar los que ya estan

nota: mi aplicación de delphi deberá de copiar y escribir archivos en esa carpeta especial esto es para respaldar fotografías (la idea es que para que se pueda respaldar la informacion debe de quedar intacta tal como fue escrita la primera ves, lo otro que aprenda ainsertar imagenes en la base de datos pero creo que sera enorme!)

kapcomx 24-10-2012 23:30:25

tipo blob
 
puedes utilizar el campo tipo blob.


que base de datos estas utilizando????????:cool:

kapcomx 24-10-2012 23:52:50

ejemplo
 
aqui un ejemplo de como insertar una imagen en una bd.

1ero. tengo en la tabla un campo de tipo blob llamado img1
2 do. tengo un procedimiento almacenado para insertar registros en la tabla
Código Delphi [-]
begin
  insert into clase ( id_clase, clave, clase, fk_estatus, fk_tipo, img1) values ( null, :clave, :clase, 1, :fk_tipo, :img1); 
end

3ero dentro del formulario tengo 4 componentes
  • un edit donde ira el nombre del archivo que contiene la imagen
  • un boton que permite abir un open dialog para buscar la imagen
  • un image (para mostrar la imagen)
  • un open dialog.
4to. codigo del boton
Código Delphi [-]
Opd1.Execute;    
eImg1.Text := Opd1.FileName; //este es el edit    
if  eImg1.Text <> '' then    
  Image1.Picture.LoadFromFile(Opd1.FileName);
5to al guardar mando llamar el procedimiento
Código Delphi [-]
dm.clase_i.Params[0].Value:= edtclave.Text;         
dm.clase_i.Params[1].Value:= edtclase.Text;         
dm.clase_i.Params[2].Value:= dm.dstipoID_TIPO.Value ;          
if eImg1.Text <> '' then         
  dm.clase_i.Params[3].LoadFromFile(opd1.FileName, ftblob)         
else         
  dm.clase_i.Params[3].value:= null;          
dm.clase_i.ExecProc;           
dm.trans.CommitRetaining ;

te comento ke uso interbase 2007 con xe2.

Saludos....

DarkBlue 07-11-2012 16:46:05

muchas gracias amigo, es una buena solucion desde el lado de la programacion . Pense que seria mas sencillo desde el nivel de sistema operativo dandole permisos a las carpetas intentare con sql server por que esa es la base de datos que utilizo muchas gracias =)

kapcomx 07-11-2012 18:00:05

sql server
 
mmmmmm ahi si te quedo mal mi amigo, la verdad nunca he trabajado con esa base de datos, pero supongo que al igual que las demas debe tener un campo tipo blob y podras manejar procedimientos almacenados.

Suerte....:cool:

olbeup 08-11-2012 08:51:25

Yo utilizo SQL Server 2005 y el campo se llama varbinary(MAX), "MAX" significa que defina a la máxima capacidad el campo.
Busca varbinary(MAX) en el foro y te saldrán mucha información al respecto.

Un saludo.


La franja horaria es GMT +2. Ahora son las 08:53:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi