Grabar Foto en sybase

Sabes necesito grabar la foto de personal de la empresa donde laboro... Pero lo que exactamenent necesito es grabar la ruta de la foto del trabajador y si fuera posible proteger la foto a modo de solo lectura.. El campo que uso para la imagen es un bynari de 100 t agradezco de antemano tu ayuda...

1 respuesta

Respuesta
1
*El tipo de campo en la base de datos para guardar la ruta (la ruta es una cadena de caracteres) de la fotografia, debe ser de tipo cadena como por ejemplo:
varchar o text.
*Tendras que cambiar de Binary a Varchar, text o su equivalente.
*La forma como acceder y guardar la ruta de una fotografia puede ser de diversas formas, por ejemplo yo lo hago de esta forma:
1. Tengo una Tabla llamado Fotografía que esta relacionado a la tabla Personal, por ejemplo:
//Tabla Personal
Cod_Personal char(7) //Codigo del personal - Primary Key
Ape_personal varchar(50) //Apellidos del personal
Nom_Personal varchar(50) //Nombres del Personal
Dir_Personal varchar(50) // Direccion del Personal
//Tabla Fotografia
Cod_Personal char(7) //Codigo de la fotografia (ver que es identico al codigo del personal) - Foreign Key
Fot_Personal varchar(200) //Aqui se almacenara la ruta de la fotografia.
Luego seguir estos pasos, suponiendo que ya esta creado un datawindow llamado dw_personal (la cual esta ubicado sobre el window o pantalla llamado personal) con todos los campos de la tabla personal:
1.Creo un datawindow de la tabla Fotografía (selecciono sus dos campos cod_personal y fot_personal para crear el datawindow objecto) llamada dw_fotografia.
2.Creo un Datawindow control (este control lo coloco sobre el dw_personal) llamado dw_fotografia y en su propiedad DataObject lo enlazo con el datawindow
objecto creado en el paso 1.
3.Coloca un Control Picture llamado p_fotografia sobre el datawindow control dw_fotografia, el control picture debe cubrir todo el datawindow control (ojo:
Tanto el datawindow control como el picture debes darle un tamaño adecuado para mostrar la fotografía).
3. Agrega dos Commandbutton llamado cb_agregar y otro llamado cb_quitar.
4. En el commandbutton cb_agregar, en su [evento clicked] agregas este código:
long ll_fila //Almacenara la nueva fila que se insertara en el datawindow dw_fotografia
string ls_ruta //Almacenara la ruta de la fotografia elegida
string ls_nombre //Almacenara el nombre de la fotografia elegida
ll_fila=dw_fotografia.insertrow(0) //insertamos una nueva fila en el dw_fotografia
getfileopenname("Buscar Imagen",ls_ruta,ls_nombre,"jpg","Graficos(*.jpg),*.jpg,Mapa de Bits(*.bmp),*.bmp,Gif(*.gif),*.gif")
p_fotografia.picturename=ls_ruta //mostramos la fotografia en el control picture.
dw_fotografia.object.cod_personal[ll_fila]=dw_personal.object.cod_personal[dw_personal.getrow()] //le pasamos el codigo generado del personal del datawindow
dw_personal al datawindow dw_fotografia, para que cuando se graba en la base de datos tanto en la tabla personal como fotografia tengan el mismo
identificador o codigo.
dw_fotografia.setitem(ll_fila,"fot_personal",p_fotografia.picturename) //asignamos la ruta de la fotografia elegida al dw_fotografia.
5.En el commandbutton cb_quitar, en su evento clicked ponemos:
long ll_fila
ll_fila=dw_fotografia.getrow() //tomamos la fila actual seleccionada.
if ll_fila<1 then
 messagebox("Error","No hay Fotografía para quitar",exclamation!)
else
 dw_fotografia.deleterow(ll_fila) //borramos la ruta de la fotografia del datawindow.
end if
p_fotografia.picturename="" //borramos la fotografia del control picture.
6.Para grabar la fotografía en la base de datos en sus respectivas tablas pondremos el siguiente código en un commandbutton cb_grabar:
if dw_personal.update() <> -1 and dw_fotografia.update()<> -1 then //si no ha ocurrido un error
 commit Using sqlca; //graba la fotografia
else
 rollback Using sqlca; //deshace la operacion y no graba nada.
end if
P.D.
Porque lo hago en dos tablas por separado, simplemente porque no todo el personal tendrá una fotografía asignada y si se hiciera en una sola tabla se desperdiciaría disco duro.
Acá solo te dejo una idea de como puedes implementar tu ventana personal con fotografía. Tendrás que agregar más lineas de código para que para que el resultado este obtimo.
Se agradece calificar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas